Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

[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) всичко изглежда нормално. Пример:
 
ros@www:~$ проба
-bash: проба: command not found
ros@www:~$
 
След като се логна в 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


 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.