Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
|
Проблема с кодировками соединения, сервера, клиента. 07.06.07 13:56 Число просмотров: 3808
Автор: kstati <Евгений Борисов> Статус: Elderman Отредактировано 07.06.07 13:58 Количество правок: 2
|
Ниже - решение "через Ж", но работает:
код вставить после установки соединения с май-эскьюэль сервером
/** start of the kstati's encoding troubles fix */
$tmp = @mysql_query("SHOW VARIABLES like 'character_set_server';");
$enc = @mysql_fetch_assoc($tmp);
@mysql_free_result($tmp);
$enc = $enc['Value'];
@mysql_query("SET character_set_client='$enc'");
@mysql_query("SET character_set_connection='$enc'");
@mysql_query("SET character_set_database='$enc'");
@mysql_query("SET character_set_results='$enc'");
// @mysql_free_result();
unset($enc);
unset($tmp);
/** end of the fix */
---
|
<web building>
|
Русский текст в Mysql 05.06.07 14:20
Автор: Natrix Статус: Незарегистрированный пользователь
|
Помогите разобраться. Есть таблица в базе, в ней поля типа varchar. В этих полях русский текст. При выводе этих полей в php-запросе на странице вместо русских букв выводятся знаки вопроса "???" В чем проблема?
|
|
Проблема с кодировками соединения, сервера, клиента. 07.06.07 13:56
Автор: kstati <Евгений Борисов> Статус: Elderman Отредактировано 07.06.07 13:58 Количество правок: 2
|
Ниже - решение "через Ж", но работает:
код вставить после установки соединения с май-эскьюэль сервером
/** start of the kstati's encoding troubles fix */
$tmp = @mysql_query("SHOW VARIABLES like 'character_set_server';");
$enc = @mysql_fetch_assoc($tmp);
@mysql_free_result($tmp);
$enc = $enc['Value'];
@mysql_query("SET character_set_client='$enc'");
@mysql_query("SET character_set_connection='$enc'");
@mysql_query("SET character_set_database='$enc'");
@mysql_query("SET character_set_results='$enc'");
// @mysql_free_result();
unset($enc);
unset($tmp);
/** end of the fix */
---
|
| |
После соединения с базой вставлена такая строка 07.06.07 14:49
Автор: Natrix Статус: Незарегистрированный пользователь
|
После соединения с базой вставлена такая строка
mysql_query ('SET NAMES CP1251');
Проблема решилась. Вопрос: насколько "правильно" такое решение? Будет ли это всегда работать?
|
|
Чтобы никогда не было необъяснимых проблем с кодировкой 05.06.07 15:05
Автор: ZloyShaman <ZloyShaman> Статус: Elderman Отредактировано 05.06.07 15:10 Количество правок: 2
|
1. Сходи на mysql.com , прочитай в документацию специальную главу про кодировки.
Теперь ты знаешь, как и в какой кодировке правильно передать буквы из mysql в php
2. Сходи в гугл и почитай про HTTP-заголовок Content-type, параметр charset (читай про PHP и твой веб-сервер, видимо Апач?)
Теперь ты знаешь, как и в какой кодировке правильно передать буквы из веб-сервера в браузер.
А ну да, забыл, есть ещё в Апаче такая директива CharsetDisable. Про неё тоже почитай, вдруг столкнёшься.
|
| |
Не... Ну ты реально злой! :)) 06.06.07 19:02
Автор: Den <Денис Т.> Статус: The Elderman
|
|
| | |
Я попытался дать максимально полезный совет. 06.06.07 19:20
Автор: ZloyShaman <ZloyShaman> Статус: Elderman
|
|
| | | |
Спасибо, конечно. А нельзя ли как-нибудь попроще :) 06.06.07 20:00
Автор: Natrix Статус: Незарегистрированный пользователь
|
Сервер, кстати, IIS. А charset=windows-1251
|
| | | | |
Прекрасно. Тогда тебе остался пункт 1. 06.06.07 20:10
Автор: ZloyShaman <ZloyShaman> Статус: Elderman
|
|
| | | | | |
Да, только вот с английским туговато :( 07.06.07 12:42
Автор: Natrix Статус: Незарегистрированный пользователь
|
|
| | | | | | |
В IT мире без английского никуда, учите пока не поздно 07.06.07 13:03
Автор: DamNet <Denis Amelin> Статус: Elderman
|
|
|
|