информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Где водятся OGRыСетевые кракеры и правда о деле ЛевинаАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Крупный взлом GoDaddy 
 Просроченный сертификат ломает... 
 Phrack #70/0x46 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / web building
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Русский текст в 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 <Denis> Статус: 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 [Bugtraq.ru Team] <Denis Amelin> Статус: Elderman
<"чистая" ссылка>
1






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2021 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach