Проблем с кирилицата в MySQl
11 отговора
542 прегледа
Проблем с кирилицата в MySQl
Здравейте отново. Когато вкарвам в базата данни ( на ръка през phpMyAdmin) текстове в дадена таблица с колация utf8_unicode_ci текст на кирилица посе в страницата ми го извежда ?????????????????????. Защо е така и как да го оправя. Когато вкарам текст като този: "Äíåøíàòà ãåîãðàôèÿ îïðåäåëÿ ìÿñòîòî íà Ëóäîãîðèåòî ìåæäó Äîáðóäæàíñêîòî ïëàòî íà ñåâåð è ñåâåðîèçòîê, Åëèÿòà (Äóíàâñêîòî êðàéáðåæèå) íà ñåâåðîçàïàä è äîëèíèòå íà ðåêèòå Áåëè Ëîì è Ïîìîðèéñêà íà þã è " после в страницата ми го извежда както трябва да е. Моля ви се помогнете!
ето и кода с който извеждам в страницата:
$sql = "select * from text_$ez
where url = '$pageid'";
$result = mysql_query($sql, $conn);
while ($text = mysql_fetch_array($result))
{
print "<p>".$text['text1']."</p> \n";
}
На латиница всичко е ОК ама на кирилица е зле.
Това дето е с кода преставляват символи като такива когато се обърка енкодинга на някоя страница !
ето и кода с който извеждам в страницата:
$sql = "select * from text_$ez
where url = '$pageid'";
$result = mysql_query($sql, $conn);
while ($text = mysql_fetch_array($result))
{
print "<p>".$text['text1']."</p> \n";
}
На латиница всичко е ОК ама на кирилица е зле.
Това дето е с кода преставляват символи като такива когато се обърка енкодинга на някоя страница !
Редактирано от tkulev на
Re: Проблем с кирилицата в MySQl
аз ползвам utf8_general_ci, но пък забвари да редактираш каквото и да било по таблицата през myadmin с него, тъй като при него излизат )(·/$)·%/)$(/%)$%$%)(%/)$/% такиааааа
Re: Проблем с кирилицата в MySQl
1) Виж phpMyAdmin-а как ти е настроен, т.е.
Language: Bulgarian (bg-utf8)
Набор от символи на MySQL: UTF-8 Unicode (utf8)
Колация на MySQL: utf8_general_ci (при мен е general_ci, но това едва ли е проблема)
2) Виж страницата си
2.1 utf-8 ли позлваш като енкодинг?
2.2 Ако MySQL е 4.X, пробвай след като се конектнеш към базата от данни и преди всякакви други заявки да изпълниш следните:
SET NAMES 'utf8'
Възможно е наборът от символи по подразбиране да не е utf-8, а чрез последните заявка му задаваш изрично за текущата конекция какъв да е набора.
__________________________________
Пътят към ада е осеян с добри намерения
Language: Bulgarian (bg-utf8)
Набор от символи на MySQL: UTF-8 Unicode (utf8)
Колация на MySQL: utf8_general_ci (при мен е general_ci, но това едва ли е проблема)
2) Виж страницата си
2.1 utf-8 ли позлваш като енкодинг?
2.2 Ако MySQL е 4.X, пробвай след като се конектнеш към базата от данни и преди всякакви други заявки да изпълниш следните:
SET NAMES 'utf8'
Възможно е наборът от символи по подразбиране да не е utf-8, а чрез последните заявка му задаваш изрично за текущата конекция какъв да е набора.
__________________________________
Пътят към ада е осеян с добри намерения
Но пък като...
избереш в браузъра encoding utf-8 и кво? 
There are three determined states the cat could be in: Alive, Dead, and Bloody Furious.
There are three determined states the cat could be in: Alive, Dead, and Bloody Furious.
Re: Проблем с кирилицата в MySQl
баси .. как ви стигат нерви да се занимавате с клиенти ползващи нещо различно от латин1... скромния ми 9 годишен опит във уеб казва, че тия създават 10 пъти повече проблеми и плащат 2 пъти по-чалко (ако плащат изобщо)
-----------------
живей днес, защото вчера няма да се върне, а утре може и да не дойде!
-----------------
живей днес, защото вчера няма да се върне, а утре може и да не дойде!
Re: Проблем с кирилицата в MySQl
В отговор на:Вълчо, що не си признаеш, че не си експерт в областта на utf8? При мен всичко работи като по вода и честно казано все повече отхвърлям идеите да ползвам друг енкодинг освен utf8_general_ciбаси .. как ви стигат нерви да се занимавате с клиенти ползващи нещо различно от латин1... скромния ми 9 годишен опит във уеб казва, че тия създават 10 пъти повече проблеми и плащат 2 пъти по-чалко (ако плащат изобщо)
инструкциите които трябва да изппълниш са следните:
if (!mysql_connect($SERVER,$USER,$PASSWORD)) {
print "<h3>could not connect to database</h3>\n";
exit;
}
mysql_select_db($DBNAME);
ini_set('mbstring.internal_encoding','UTF-8');
ini_set('mbstring.http_input','UTF-8');
ini_set('mbstring.http_output','UTF-8');
safe_query("SET CHARACTER SET utf8");
safe_query("SET NAMES 'utf8'");
и освен това трябва да имаш следния таг в <head> секцията на html страницата
<meta http-equiv="Content-Type" content="text/html; charset=UTF8">
Няма нищо сложно, само дето много мрънкате.
Re: Проблем с кирилицата в MySQl
ми не съм експерт .... никога не ми се е налагало да ползвам УТФ и като се замислям ... няма да ми се наложи в близките дузина години.
-----------------
живей днес, защото вчера няма да се върне, а утре може и да не дойде!
-----------------
живей днес, защото вчера няма да се върне, а утре може и да не дойде!
Re: Проблем с кирилицата в MySQl
Как мога да направя енкодинга на MySQl-а да е cp1251, защото най-вероятно от там се объркава така.
Re: Проблем с кирилицата в MySQl
питай тези които не отрязват бг уеП пространство, може и да те светнат за него.
-----------------
живей днес, защото вчера няма да се върне, а утре може и да не дойде!
-----------------
живей днес, защото вчера няма да се върне, а утре може и да не дойде!
Re: Проблем с кирилицата в MySQl
SET NAMES 'cp1251'
И най-ярките личности си плащат тока.
И най-ярките личности си плащат тока.