[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Иероглифы вместо русского текста
Itan
Здравствуйте! У меня такая проблема:
В одной таблице в базе есть колонка (default_signature), куда записываются русский текст. Так вот. Я написал скрипт, создал базу, решил проверить. Через cmd добавил в эту колонку фразу 'Привет!!!'. Тут же прописал 'SELECT * FROM default_settings'. Тут "Привет!!!" выводится как "?ривет!!!". Ну, думаю, ладно, пусть так, попробую скриптом вывести, вдруг по-человечески будет. Прописываю в скрипте:


$conn = mysql_connect('localhost', 'user', 'passw');
mysql_select_db('sr', $conn);
$query = "SELECT default_signature FROM default_settings";
$result = mysql_query($query, $conn);
$row = mysql_fetch_row($result);
print $row[0];
mysql_close($conn);


В таком случае PHP выводит "?аЁўҐв!!!" вместо "Привет".
Посмотрел форум. Узнал про mysql_query("SET NAMES UTF8");

Поправил код:


$conn = mysql_connect('localhost', 'user', 'passw');
mysql_select_db('sr', $conn);
mysql_query("SET NAMES UTF8", $conn);
$query = "SELECT default_signature FROM default_settings";
$result = mysql_query($query, $conn);
$row = mysql_fetch_row($result);
print $row[0];
mysql_close($conn);


Теперь вместо "Привет" выводится "?Г ВЁВўВҐГў!!!"
Думаю, что за хрень такая, пробовал по-другому:


$conn = mysql_connect('localhost', 'user', 'passw');
mysql_select_db('sr', $conn);
$query = "SET NAMES UTF8; SELECT default_signature FROM default_settings";
$result = mysql_query($query, $conn);
$row = mysql_fetch_row($result);
print $row[0];
mysql_close($conn);


Щас вообще появляется Warning...
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in ... on line 22
Ну тут просто я неправильно написал, последний способ можно не принимать всерьез. Как правильно надо?

ДБ создавалась так:

create database sr
-> default character set utf8
-> default collate utf8_general_ci;


Таблица так:

create table default_settings
-> (
->
default_sender varchar(200),
->
default_signature text
-> );




Спустя 6 минут, 12 секунд (12.03.2010 - 20:21) DedMorozzz написал(а):
        mysql_query ("SET NAMES utf8");
mysql_query ("set character_set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");

это прямо перед своим запросом напиши.

Спустя 8 часов, 54 минуты, 16 секунд (13.03.2010 - 05:16) Itan написал(а):
Мм.. теперь скрипт выглядит так, но вместо "Привет!!!" все-равно "?Г ВЁВўВҐГў!!!":


$conn = mysql_connect('localhost', 'user', 'passw'); mysql_select_db('sr', $conn);
mysql_query ("SET NAMES utf8", $conn);
mysql_query ("set character_set_client='utf8'", $conn);
mysql_query ("set character_set_results='utf8'", $conn);
mysql_query ("set collation_connection='utf8_general_ci'", $conn);
$query = "SELECT default_signature FROM default_settings";
$result = mysql_query($query, $conn);
$row = mysql_fetch_row($result);
print $row[0];
mysql_close($conn);

Спустя 8 минут, 45 секунд (13.03.2010 - 05:24) Itan написал(а):
Некоторые пишут, что создают новые базу и у них все норм. Создал базу, все та же хрень.. Может создаю неправильно? Или где-то еще нужно указывать кодировку?

Спустя 3 часа, 41 минута, 11 секунд (13.03.2010 - 09:05) zMax написал(а):
После создания странички...ты открываеш документ и там иероглифы?Если меняеш через браузер в вручную.. начинает работать?

Спустя 1 час, 52 минуты, 54 секунды (13.03.2010 - 10:58) Itan написал(а):
Все работает)) Я ведь через консоль записывал в базу... А мне седня одноклассник сказал, что через консоль вообще левая кодировка выходит. Я попробовал через скрипт сделать запись, все нормально))) спасибо!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.