SQLiteManager не понимает русской кодировки

Vodoleyy

Новичок
SQLiteManager не понимает русской кодировки

У меня apache 2.2 php 5.3, sqlite3. sqlitemanager 1.2.4.
Не видит русского языка sqlitemanager... Создаю в нем БД, в ней таблицу. Вписываю в какое-нибудь поле "Алексей", сохраняю. Когда смотришь на результат своих действий, то видишь вместо русского имени символы utf-8 кодиовки.... Как перевести sqlitmanager. вернее поменять кодировку?
 

Вурдалак

Продвинутый новичок
Re: SQLiteManager не понимает русской кодировки

Vodoleyy
Скорее всего данные в таком виде и заносятся, т.е. в базе прямо так и лежит
Алексей
Ищи причину в другом.
 

Vodoleyy

Новичок
Ну как бы да. В базе так и лежит, и в таком виде заносятся... Если через sqliteadministator (прога для управления базами sqlite) заносить, то просто корявые иероглифы видятся(
 

dimagolov

Новичок
planarik, дорогой, а где ты у автора увидел CP1251 в данных? у него там html entities вообще-то.

Vodoleyy, разбирайся кто у тебя лишний раз кодирует данные в html entities, т.е. где они передаются в таком виде, но автоматически не распаковываются.
 

dimagolov

Новичок
planarik, если ты подумаешь немного, то поймешь, что именно у него.

-~{}~ 05.06.10 09:25:

до того, как он исправил свой пост это было более очевидно
 

Vodoleyy

Новичок
Довольно внимательные участники обсуждения:) Все приметите:)... но, тем не менее, проблема на месте.... Всё там делает sqlitemanager: и кодирует, и не кодирует...
"mb_convert_encoding("Алексей", "CP1251","UTF-8")" - это ж ведь все в пхп, а в нем я создавал базу, в ней таблицу, писал туда по-русски. Все работает: выводит по-русски. Проблема в sqlitemanager'e. И нет у меня никаких мыслей по эотму поводу:(.... лезть в его пхп файлы и там разбираться?....я попробовал маленько. Воз и ныне там.
 

Mols

Новичок
Vodoleyy
Какую кодировку отдает браузер в заголовках? (Наверняка ISO-8859-1) Поставьте ту, что Вам нужна. На мой взгляд - лучше сразу с UTF-8 работать(как в скриптах так и в базе). Но в общем как хотите.
Ну и почитайте как sqlite3 "сказать" в какой кодировке к нему идут данные.
Проблема в sqlitemanager'e.
Проблема не в менежере. Менеджер Вам правильно показывает, что именно находится в базе.
 

Vodoleyy

Новичок
Вот просто пример для тестирования:
<?php
if ($db = sqlite_open('fdb.sqlite3')) {
sqlite_query($db, 'CREATE TABLE pop (name varchar(10))');
sqlite_query($db, "INSERT INTO name VALUES ('Майкл Джексон')");
$result = sqlite_query($db, 'select name from pop');
$massiv=sqlite_fetch_array($result);
print $massiv["name"];
}
?>
БРОУЗЕР все выводит по-русски. Запускаю sqlitemanager, открываю эту fdb, в ней смотрю таблицу pop....и... в ячейке name не мой любимый Макл Джексон, а закорючки :)

"как sqlite3 "сказать" в какой кодировке к нему идут данные" - могу почитать.... но у меня есть русский sqlitemanager из TopServer'a, он все по-русски понимает, но он более старой версии и sqlite3 не понимает. Так бы на нем сидел.... Я про него вспомнил к тому, что, как мне видится, именно sqlitemanager всему виной...
 

dimagolov

Новичок
Vodoleyy, этот пример вообще ни о чем.

http://phpfaq.ru/charset, читай. хотя там про MySQL говориться, а тебе нужно sqlite, но общая идея того, что такое кодировки что на них влияет и почему там правильная. кроме этого, читай про sqlite, как там передавать и хранить данные в правильной кодировке. после того, как поймешь в какой же собственно кодировке ты пишешь в базу.

Запускаю sqlitemanager, открываю эту fdb, в ней смотрю таблицу pop....и... в ячейке name не мой любимый Макл Джексон, а закорючки
это почти наверняка от того, что кодировка таблиц и соединения sqlitemanager с БД не совпадает с кодировкой твоих данных.

-~{}~ 05.06.10 16:41:

"как sqlite3 "сказать" в какой кодировке к нему идут данные" - могу почитать....
вот и читай, а не пиши глупости на форуме
 

Вурдалак

Продвинутый новичок
Мне кажется, что товарищ говорит неправду: в этом примере явно подставляется значение, а в реале скорее всего данные приходят из формы.
 
Сверху