[Lug-bg] Кирилица в mysql заявки през windows ssh клиент към линукс
- Subject: [Lug-bg] Кирилица в mysql заявки през windows ssh клиент към линукс
- From: "Rossen Antonov" <rossen.antonov@xxxxxxxxx>
- Date: Mon, 8 Oct 2007 16:55:43 +0300
Здравейте всички!
Имам 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) всичко изглежда нормално. Пример:
След като се логна в 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@xxxxxxxxxxxxxxxxxx
http://linux-bulgaria.org/mailman/listinfo/lug-bg
|