Здравейте всички!

Имам Slackware сървер с MySql 5. Определен уеб сайт се поддържа отдалечено
от Windows машина по следния начин:
- през ssh (със WinSCP) се качват *.php, *.css и т.н. файлове;
- пак през ssh (putty) се достига конзолата на mysql и директно се пишат
INSERT заявки в базата.

За момента методологията не може да се промени.

Идеята е да се ползва utf8 за целия сайт.

Лично аз заварих база данни с енкодинг latin1, в която е тъпкано с cp1251.
Също така php скриптовете и текста на кирилица в тях също са на cp1251,
защото не е задавано друго при създаването им под Windows. И като последно -
скриптовете генерират html код, който съдържа  charset=windows-1251.

--------------------

С много зор дъмпнах базата, конвертирах я с iconv в utf8 и я върнах отново
както трябва. Сега всичко в mysql-а е utf8 (база, таблици, полета и самите
данни). В последствие конвертирах и php скриптовете с кирилица в utf8.
Промених функцията, която бърка в базата да изпълнява допълнително "set
names utf8" и накрая html файловете да идват с charset=utf-8.

Сега сайтът работи!!! Но не и методологията за обновяване.

За php файловете създадени под Windows вече ще се задава при запис да
ползват utf8. Това е ОК.

Но заявките към mysql-а са мъка. Първо се логвам с putty към сървера като
задавам на putty да ползва utf8 за визуализиране на данните. След това в
конзолата изпълнявам export LANG=bg_BG.UTF-8 (Нужно ли е?!?). До тук когато
пиша на кирилица в конзолата (разбирайте от Windows-a през putty) всичко
изглежда нормално. Пример:

[EMAIL PROTECTED]:~$ проба
-bash: проба: command not found
[EMAIL PROTECTED]:~$

След като се логна в mysql изпълнявам "set names utf8" и при произволен
селект виждам всичко както трябва:

mysql> select * from menu;
+----+------------------------+-------------+-----+
| id | namebg                 | nameen      | img |
+----+------------------------+-------------+-----+
|  2 | Структура     | Structure   |     |
|  5 | Конференции | Conferences |     |
|  6 | Проекти         | Projects    |     |
+----+------------------------+-------------+-----+
3 rows in set (0.00 sec)

Но когато започна да пиша INSERT с кирилица получавам сърцебиене:

mysql> insert into table1 (namebg) value ("н▒и▒в▒▒

Дано добре видите какво се случва. Буквите от "р" до "я" и от "А" до "П" не
се визуализират. Не съм проблвал дали данните ще се въведат ако изпълня на
сляпо заявката. Факт е, че  работата е абсурдна.

Всяко мнение за грешки в изпълнението като цяло и за проблемът на края е
добре дошло! След нощ + ден безсъние и гуугъл не помага...

Благодаря!
_______________________________________________
Lug-bg mailing list
Lug-bg@linux-bulgaria.org
http://linux-bulgaria.org/mailman/listinfo/lug-bg

Reply via email to