Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вместо русских букв иероглифы
 
 автор: anatoliy   (22.04.2007 в 13:29)   письмо автору
 
 

Добрый день(вечер)!
Часть кода:

mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");

//переменная для подсчета количества записей
$nom = 0;

$ath = mysql_query("SELECT familiya, imya, otchestvo,
pol, tabelniy, mesto, dolgnost From osnovnie
ORDER BY familiya, imya, otchestvo;");

if($ath)
{
// Определяем таблицу и заголовок
echo "<table border=1>";
echo "
<tr><td><b>Фамилия
</td><td><b>Имя
</td><td><b>Отчество
</td><td><b>Пол
</td><td><b>Табельный
</td><td><b>Место
</td><td><b>Должность
</td><td><b>№ п/п
</b></td></tr>";

// Так как запрос возвращает несколько строк, применяем цикл

while($author = mysql_fetch_array($ath))
echo"<tr><td>"
.$author['familiya']."&nbsp;</td><td>"
.$author['imya']."&nbsp;</td><td>"
.$author['otchestvo']."&nbsp;</td><td>"
.$author['pol']."&nbsp;</td><td>"
.$author['tabelniy']."&nbsp;</td><td>"
.$author['mesto']."&nbsp;</td><td>"
.$author['dolgnost']."&nbsp;</td><td>"
.$nom = $nom + 1;
echo"</table>";
}
else
{
echo "<p><b>Error: ".mysql_error()."</b><p>";
exit();
}
echo("<P><b>Всего записей: ".$nom."</b></P>");

Если закоментировать любую из нижеприведенных строк, то результат выводится в нормальном виде иначе,- иероглифы.

// .$author['tabelniy']."&nbsp;</td><td>"
// .$author['mesto']."&nbsp;</td><td>"
// .$author['dolgnost']."&nbsp;</td><td>"

Пожалуйста помогите решить данную проблему!

   
 
 автор: cheops   (22.04.2007 в 13:46)   письмо автору
 
   для: anatoliy   (22.04.2007 в 13:29)
 

Иероглифы как выглядят?

   
 
 автор: anatoliy   (22.04.2007 в 16:33)   письмо автору
 
   для: cheops   (22.04.2007 в 13:46)
 

Выглядят вот так:

&#194;&#229;&#273;&#241;&#232;&#255; &#241;&#229;&#273;&#226;&#229;&#273;&#224; MySQL - 5.0.24a-community-nt
ниже названия заголовков таблицы
&#212;&#224;&#769;&#232;&#235;&#232;&#255; &#200;&#769;&#255; &#206;&#803;&#247;&#229;&#241;&#803;&#226;&#238; &#207;&#238;&#235; &#777;&#224;&#225;&#229;&#235;&#252;&#237;&#251;&#233; &#768;&#229;&#241;&#803;&#238; &#196;&#238;&#235;&#230;&#237;&#238;&#241;&#803;&#252; &#185; &#239;/&#239;

а когда закоментировать любою из строк:

// .$author['tabelniy']."&nbsp;</td><td>"
// .$author['mesto']."&nbsp;</td><td>"
// .$author['dolgnost']."&nbsp;</td><td>"
тогда

Версия сервера MySQL - 5.0.24a-community-nt
ниже названия заголовков таблицы
№ п/п Фамилия Имя Отчество № п/п

   
 
 автор: anatoliy   (22.04.2007 в 16:38)   письмо автору
 
   для: anatoliy   (22.04.2007 в 16:33)
 

стало ещё лучше,- ввёл в текст письма иероглифы, а на странице получаются ихние коды.
Пробую ещё раз:

&#194;&#229;&#273;&#241;&#232;&#255; &#241;&#229;&#273;&#226;&#229;&#273;&#224; MySQL - 5.0.24a-community-nt
&#212;&#224;&#769;&#232;&#235;&#232;&#255; &#200;&#769;&#255; &#206;&#803;&#247;&#229;&#241;&#803;&#226;&#238; &#207;&#238;&#235; &#777;&#224;&#225;&#229;&#235;&#252;&#237;&#251;&#233; &#768;&#229;&#241;&#803;&#238; &#196;&#238;&#235;&#230;&#237;&#238;&#241;&#803;&#252; &#185; &#239;/&#239;

   
 
 автор: Trianon   (22.04.2007 в 21:10)   письмо автору
 
   для: anatoliy   (22.04.2007 в 16:38)
 

В какой кодировке формируется страница с html-таблицей?
В какой кодировке хранятся данные в таблице sql?
В какой кодировке sql-сервер возвращает результат?

   
 
 автор: anatoliy   (22.04.2007 в 22:03)   письмо автору
 
   для: Trianon   (22.04.2007 в 21:10)
 

1
$dbcnx = mysql_connect($dblocation,$dbuser,$dbpasswd);
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
2
CP1251
3
Выдержка из my.ini

# MySQL Server Instance Configuration File

[mysqladmin]
default-character-set=cp1251

# SERVER SECTION
# ----------------------------------------------------------------------
[mysqld]
# The TCP/IP Port the MySQL Server will listen on
port=3306
init-connect=SET NAMES cp1251
skip-character-set-client-handshake
#Path to installation directory. All paths are usually resolved relative to this.
basedir="C:/Program Files/MySQL/MySQL Server 5.0/"

#Path to the database root
datadir="C:/Program Files/MySQL/MySQL Server 5.0/Data/"

# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=cp1251

При просмотре генерируемой страницы IE6 обнаружил следующее:
кодировка шрифта стоит в режиме, - автовыбор
и он (шрифт) почему-то автоматически определяется как
вьетнамский Windows
при принудительном переключении в кирилица Windows
всё выводится нормально. Возникает вопрос: где и как PHP
формирует страницу с признаками вьетнамской Windows !?

   
 
 автор: Trianon   (22.04.2007 в 22:15)   письмо автору
 
   для: anatoliy   (22.04.2007 в 22:03)
 

mysql_query ("set character_set_results='cp1251'");
init-connect=SET NAMES cp1251
Это ответ на мои вопросы 2 и 3

Страницу формирует apache и php.

php - если указывает явно тип документа функцией header("Content-Type: ...");
а в противном случае апач - директивой AddDefaultCharset из ближайшего .htaccess
У Вас, видимо, не указан.

Пропишите в корне сайта в .htaccess

AddDefaultCharset windows-1251

   
 
 автор: anatoliy   (23.04.2007 в 00:00)   письмо автору
 
   для: Trianon   (22.04.2007 в 22:15)
 

Ответ на первый вопрос как я понял это то, что мне надо прописать?
Вы уж извините, в освоении PHP делаю только первые шаги.
Прописать в корне сайта в .htaccess: я не понял где это и как?
Сделал следующее:
в файле httpd.conf в секции
Options Indexes FollowSymLinks
прописал указанную Вами строку
AddDefaultCharset windows-1251
И о чудо заработало !!!
Огромнейшее Вам спасибо !!!
Пожалуйста подскажите правильно ли я прописал указанную
Вами строку и что такое прописать в корне сайта в .htaccess
Ещё раз спасибо !

   
 
 автор: Trianon   (23.04.2007 в 09:26)   письмо автору
 
   для: anatoliy   (23.04.2007 в 00:00)
 

В принципе, нормально сделали.

Опции можно назначать на все сайты, которые обеспечивает апач (это тот способ, который Вы применили) а также отдельно на любой конкретный сайт, и на любой подкаталог (включая вложенные) конкретного сайта. В этих случаях в каталоге сайта, которому нужно указать специфические опции, создают файл с именем .htaccess и строки конфигурации помещают в этот файл.

   
 
 автор: anatoliy   (23.04.2007 в 19:02)   письмо автору
 
   для: Trianon   (23.04.2007 в 09:26)
 

Огромное спасибо Trianon за ответы! Тема закрыта.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования