MySQL cyrrilic encoding on Windows
11 отговора
299 прегледа
MySQL cyrrilic encoding on Windows
MySQL4.0.15-Windows2k
Използувах параметрите по подразбиране и направих няколко таблици с полета от тип varchar, които трябва да съхраняват кирилица.
Когато извеждам резултата от заявките с MySQL-client-а няма проблеми, но като използувам PHP се изобразяват е&jJ$...(енкодинга на страницата си е Win1251).
Какво трябва да се направи без да се прекомпилира MySQL, така че символите да се съхраняват и извеждат коректно?
TIA.
Използувах параметрите по подразбиране и направих няколко таблици с полета от тип varchar, които трябва да съхраняват кирилица.
Когато извеждам резултата от заявките с MySQL-client-а няма проблеми, но като използувам PHP се изобразяват е&jJ$...(енкодинга на страницата си е Win1251).
Какво трябва да се направи без да се прекомпилира MySQL, така че символите да се съхраняват и извеждат коректно?
TIA.
Re: MySQL cyrrilic encoding on Windows
Как показваш полетата от базата в PHP-то - директно или ги прекарваш през htmlentities? Ако е второто пробвай htmlspecialchars - върши същата работа и не прецаква кирилицата.
Re: MySQL cyrrilic encoding on Windows
spored men problema ne e v mysql-a a v web server
iamsh tam edni default encodingi mislia beshe
inak za mysql-a
dobavi
default-character-set=cp1251 v my.cfn v [mysqld] sekciata
-----------------
signatura
iamsh tam edni default encodingi mislia beshe
inak za mysql-a
dobavi
default-character-set=cp1251 v my.cfn v [mysqld] sekciata
-----------------
signatura
Re: Гуру, Люлин 7
прекомпилиране на апач
-----------------------
гърбавия, ковчег ще го изправи
-----------------------
гърбавия, ковчег ще го изправи
Re: MySQL cyrrilic encoding on Windows
Странното е че събирам данни не само от MySQL, но и от SQLServer и Access и с тях няма никакви проблеми с кирилицата. Не виждам защо Apache-то да не се разбира с MySQL относно кирилицата.
Мисля си 4е проблема е в MySQL - добавих default-encoding да е cp1251, рестартирах услугата MySQL, ама май трябва да изтрия базата и да създам наново всички таблици (а те са пълни)
.
Мисля си 4е проблема е в MySQL - добавих default-encoding да е cp1251, рестартирах услугата MySQL, ама май трябва да изтрия базата и да създам наново всички таблици (а те са пълни)
Re: MySQL cyrrilic encoding on Windows
Просто няма как да е в MySQL-а както и ти сам си го написал. След като от команден ред нямаш проблеми а само от PHP-то нещата са ясни. Различна настройка на клиентите.
>добавих default-encoding да е cp1251
Такова живитно няма. Опцията се казва
default-character-set = cp1251
Между другото я добави не само в секция [mysqld] а и в секция [client]
и провери дали PHP-то я чете изобщо.
> рестартирах услугата MySQL, ама май трябва да изтрия базата и да > създам наново всички таблици (а те са пълни) .
Това пък откъде го измисли? Трябва да преиндексираш т.е. да направиш ALTER TABLE .... DROP INDEX<всички индекси>, ADD INDEX ...
А още по-лесно е да направиш REPAIR. mysqlcheck -A може доста да ти упрости живота в този случай.
Освен ако не си 4.1 където даже няма нужда да рестартираш
salle.online.bg/sig
>добавих default-encoding да е cp1251
Такова живитно няма. Опцията се казва
default-character-set = cp1251
Между другото я добави не само в секция [mysqld] а и в секция [client]
и провери дали PHP-то я чете изобщо.
> рестартирах услугата MySQL, ама май трябва да изтрия базата и да > създам наново всички таблици (а те са пълни) .
Това пък откъде го измисли? Трябва да преиндексираш т.е. да направиш ALTER TABLE .... DROP INDEX<всички индекси>, ADD INDEX ...
А още по-лесно е да направиш REPAIR. mysqlcheck -A може доста да ти упрости живота в този случай.
Освен ако не си 4.1 където даже няма нужда да рестартираш
salle.online.bg/sig
Re: MySQL cyrrilic encoding on Windows
Благодаря за съветите, но резултат няма
.
default-character-set = cp1251 и за [mysqld] и за [client].
myisamchk -dvv mytable_name
връща->>cp1251.
PHP.ini ->> default_charset= "cp-1251"
Apache.conf ->>AddLanguage bg .bg
->>AddDefaultCharset cp-1251
default-character-set = cp1251 и за [mysqld] и за [client].
myisamchk -dvv mytable_name
връща->>cp1251.
PHP.ini ->> default_charset= "cp-1251"
Apache.conf ->>AddLanguage bg .bg
->>AddDefaultCharset cp-1251
Re: MySQL cyrrilic encoding on Windows
Остава да ни покажеш проблемия php код за да хвърлиме по едно око.
Re: MySQL cyrrilic encoding on Windows
Съвсем случайно локализирах проблема
.
Изглежда че браузъра (IE5) (или пък Web-server-a) сменя енкодинга на страницата, въпреки 4е съм дал страницата да е с
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta http-equiv="Content-Language" content="bg">
Ако се смени от IE encoding-a да е Cyrilic(DOS) - всичко си се вижда ОК.
За Netscape работи при Cyrilic (CP-866).
Header() ли да ползвам - някой имал ли е такъв проблем?
Изглежда че браузъра (IE5) (или пък Web-server-a) сменя енкодинга на страницата, въпреки 4е съм дал страницата да е с
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta http-equiv="Content-Language" content="bg">
Ако се смени от IE encoding-a да е Cyrilic(DOS) - всичко си се вижда ОК.
За Netscape работи при Cyrilic (CP-866).
Header() ли да ползвам - някой имал ли е такъв проблем?
Re: MySQL cyrrilic encoding on Windows
Kakwi li ne encodingi mu slagah w stranicata - ne iska i ne iska.
Maj zabrawih da kava kombinaciqta:
Apache2.0.43 - PHP4.3.2 - MySQL4.0.15 - Win2KAdvancedServer
Phpinfo() kazwa 4e PHP-to polzwa MySQLClientAPI-3.23.59 - ottuk da ne idwa problema?!
Maj zabrawih da kava kombinaciqta:
Apache2.0.43 - PHP4.3.2 - MySQL4.0.15 - Win2KAdvancedServer
Phpinfo() kazwa 4e PHP-to polzwa MySQLClientAPI-3.23.59 - ottuk da ne idwa problema?!
Solution
Проблема се оказа много тъп - тъй като таблицата дето е с кирилски колони имаше само няколко реда - аз ги вкарах ръчно с MySQL-клиента от DOS-промпта - затова и като сменя с браузера енкодинга да е Cyrillic(DOS) - тогава работи. Но не работи с друг енкодинг - това bug в MySQL-client ли е? Според мен би трябвало да работи.
Сега като попълних таблицата със заявка от PHP - няма проблеми
.
Благодаря за съветите на всички!
GL>.
Сега като попълних таблицата със заявка от PHP - няма проблеми
Благодаря за съветите на всички!
GL>.
Re: Solution
Явно при вкарване на данните от DOS си ползвл българската DOS кирилица, а не windows-1251, затова в таблицата са били с неподходяш за windows приложенията формат.