2015-02-20 3 views
0

Прежде всего позвольте мне сказать, что у меня есть база данных sybase, ее кодировка определенно не utf-8. и я не могу изменить ее на utf-8 из-за некоторых других проблем.проблема с кодировкой в ​​sybase до php

поэтому проблема мне нужно прочитать данные из этого datbase с PHP и сохранить его в таблицу тузда которая utf8.

так обычно без какого-либо преобразования значения сохраняется в моей базе данных, как

//sybase query 
$result= someFuntionToReturnSybaseData(); 
//the $result is a multidimensional array 
echo $result[0]['somevalue']; //19’’ long bla bla 

если я пытаюсь вставить это в тузд таблицу с кодировкой по умолчанию, значение сохраняется как "19?? long bla bla"

в браузере он показывает, как "19Â’Â’ long bla bla"

есть в любом случае, чтобы сохранить "19’’ long bla bla" В MySQL таблицы, как это и показать его правильно, где каждый

я попытался

utf8_encode($result[0]['somevalue']); 
iconv(); 

но более искаженные символы появляются

пожалуйста, не говори мне, чтобы использовать кодировка везде такая же, как я не могу сделать это

+0

Знаете ли вы, что набор символов Sybase используют? – deceze

+0

@deceze 'iso_1' – coolguy

+0

@deceze вы можете мне помочь? – coolguy

ответ

1

Быстрое решение здесь:

Detect encoding and make everything UTF-8

и исходный код, который нужно в соответствии с этой статьей здесь:

https://github.com/neitanod/forceutf8

Но если вам нужно что-то проще, чем нам нужно обсудить полный путь от db до данных вашей кодовой строки.

Не могли бы вы показать someFuntionToReturnSybaseData() исходный код?

мы можем изменить эту функцию? или вы просто называете это как есть?

Какова исходная кодовая страница db?

У вас есть другие веб-страницы, которые отлично работают с этим sybase db?

какая настройка страницы кода для этих страниц?

Какая у вас структура таблицы mysql db?

Вы можете показать инструкцию CREATE TABLE для mysql?

и ваш код, где вы пытаетесь вставить данные?

и самый последний вопрос, но на самом деле не один, вы должны игнорировать:

что ваша страница файл кода PHP?

(у меня есть Expirience развивающегося кириллических веб-сайты, и был много ситуаций, когда исходный код страница .php файл обидела результирующие выходы :-))

+0

спасибо человеку .. спасибо за ссылку – coolguy

1

Прежде всего, вам нужно, чтобы получить данные от Sybase и конвертировать это UTF-8, так что вы можете загрузить его в MySQL:

$resultInISO = someFuntionToReturnSybaseData();//ISO-8859-1 
$resultInUTF8 = mb_convert_encoding($resultInISO,"UTF-8","ISO-8859-1"); 
//now it's in UTF8, you can insert it into MySQL 

http://php.net/manual/en/function.mb-convert-encoding.php

Сообщите мне, если это сработает для вас.

+0

теперь это выглядит как «19»? Long bla bla » – coolguy

+0

спасибо в любом случае :) – coolguy

+0

Можете ли вы сказать мне, что возвращает' echo mb_internal_encoding(); '? –

Смежные вопросы