Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Unicode: MySQL, файлы, безопасность 
:(
    Опции темы
alexey009
  Дата 18.5.2010, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 28.7.2008

Репутация: 2
Всего: 2



Я понимаю, что эти темы уже частично поднимались, но хочется собрать все воедино.
Сайт англо-чешский, поэтому другая кодировка не пойдет, но обо всем по порядку.

1. MySQL
База данных, таблицы, поля в таблицах - Сравнение utf8_unicode_ci
Мета тег:
Код

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Тут вопросов нету, по идее должно работать, но..
При добавлении текста в БД (через phpmyadmin) текст добавляется в виде Dovolen & # 225; v Evrop & # 283;
Т.е. символы заменяются на соответствующие сущности(код), это проблема номер раз.
Правда некоторые символы выводятся корректно(например последний символ в слове Европа(на чешском)).
Вопрос соответственно следующий:
Как сделать так, чтобы
a. Выводились корректно работал вывод всех символов
б. В "Просмотре HTML кода" были символы, а не их сущности(коды)

2. Файлы
Я так понимаю, что файлы надо тоже сохранять в кодировка UTF-8, верно?
Как сделать так, чтобы текст из файлов тоже корректно выводился(и чтобы в "просмотре HTML кода" были символы, а не их сущности)

3. Безопасность
Раньше использовал функцию htmlspecialchars();, теперь её использование не представляется возможным, т.к. она выводит сущности(код) символов. Какие есть замены(помимо того, чтобы вручную написать замену символов <, >, ', ")?
Хотя, может быть этот нюанс связан с вопросами 1 пункта?

Заранее благодарен за ответы.

Это сообщение отредактировал(а) alexey009 - 18.5.2010, 21:34
PM MAIL   Вверх
NetJunky
Дата 19.6.2010, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 11.5.2008
Где: Tallinn

Репутация: 0
Всего: 0



Насчёт кодировки могу сказать следующее.
  •  Кодировка в БД выбрана верная.
  •  Файлы должны быть в кодировке UTF-8 without BOM.
  •  В заголовках страниц должно быть указано charset=utf-8.
Во всяком случае у меня так выводиться верно, но проблема в том, что если я скажем ввожу некоторое слово по русски в форму, то когда просматриваю запись через phpMyAdmin, то вижу, что-то вроде этого Елдак.

Перепробовал разные кодировки в броузере, но так русскими буквами и не отобразилось. Когда считываю и вывожу на страничке данные из БД, то нормально по русски отображается.
Может кто-то сталкивался с такой проблемой, могли бы объяснить, как это поправить, если возможно?


--------------------
Sleep, those little slices of death; Oh how I loathe them. © Edgar Allan Poe
Таллиннцы http://vingrad.ru/groups.php?action=group_...mp;group_id=139

Для записи данных объёмом 1 Терабайт на бумагу, нужно срубить 50000 деревьев.
PM MAIL WWW ICQ Skype MSN   Вверх
Sentox
Дата 19.6.2010, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


как то так
**


Профиль
Группа: Участник
Сообщений: 392
Регистрация: 27.1.2009
Где: Зимбабве

Репутация: 7
Всего: 7



Цитата(NetJunky @ 19.6.2010,  13:11)
Насчёт кодировки могу сказать следующее.

  •  Кодировка в БД выбрана верная.
  •  Файлы должны быть в кодировке UTF-8 without BOM.
  •  В заголовках страниц должно быть указано charset=utf-8.
Во всяком случае у меня так выводиться верно, но проблема в том, что если я скажем ввожу некоторое слово по русски в форму, то когда просматриваю запись через phpMyAdmin, то вижу, что-то вроде этого Елдак.

Перепробовал разные кодировки в броузере, но так русскими буквами и не отобразилось. Когда считываю и вывожу на страничке данные из БД, то нормально по русски отображается.
Может кто-то сталкивался с такой проблемой, могли бы объяснить, как это поправить, если возможно?

кодировка вывода самого phpMyAdmin другая
PM MAIL   Вверх
SickFxck
Дата 20.6.2010, 01:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 16.4.2010

Репутация: нет
Всего: 1



Цитата(alexey009 @  18.5.2010,  21:33 Найти цитируемый пост)
При добавлении текста в БД (через phpmyadmin) текст добавляется в виде Dovolen & # 225; v Evrop & # 283;

— скорее всего кодировка страниц phpMyAdmin выбрана неправильная (например, windows-1251). HTML-сущности отсылает браузер, если не может найти в текущей кодовой таблице таких символов.

Цитата(alexey009 @  18.5.2010,  21:33 Найти цитируемый пост)
Раньше использовал функцию htmlspecialchars();, теперь её использование не представляется возможным, т.к. она выводит сущности(код) символов.

—  это неправда. Конкретно htmlspecialchars() ничего такого не делает.
PM MAIL   Вверх
NetJunky
Дата 20.6.2010, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 11.5.2008
Где: Tallinn

Репутация: 0
Всего: 0



Sentox, уже проверял. phpMyAdmin кодировка UTF-8. Если я верно понял, то вот MySQL charset:  UTF-8 Unicode (utf8). Также просто перепробывал разные кодировки предоставляемые броузером. Даже скачал программу SQLyog. подключился с помощью неё к своей БД и результат тотже.

UPD: На данный момент проблема решена. Решение заключалось в том, что после выполнения mysql_connect(); надо было сразу выполнить mysql_query("SET NAMES utf8");.
NB!Записи, которые уже были произведены неверно не изменятся. Чтобы проверить работает или нет, то стоит попробовать занести новую запись.

Это сообщение отредактировал(а) NetJunky - 20.6.2010, 16:34


--------------------
Sleep, those little slices of death; Oh how I loathe them. © Edgar Allan Poe
Таллиннцы http://vingrad.ru/groups.php?action=group_...mp;group_id=139

Для записи данных объёмом 1 Терабайт на бумагу, нужно срубить 50000 деревьев.
PM MAIL WWW ICQ Skype MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0674 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.