Руководства по работе с Unicode в PHP5? - PullRequest
10 голосов
/ 18 января 2011

Привет всем.Я занимаюсь разработкой нового сайта (php5 / mySQL) и надеюсь наконец-то войти в популярный Unicode.Я признаю, что почти ничего не знаю о поддержке Unicode в данный момент, но я надеюсь решить эту проблему с вашей помощью.

После отчаянного извинения моих крошечных, жалких оправданий для Googlefu-мышц и чистки.по каждой странице, которая выглядела многообещающе для моих юникод-юникодных глаз, я пришел к выводу, что, хотя и не полностью поддерживаемый, мой драгоценный язык выбора (PHP для тех, кто забыл) предпринял по крайней мере наполовину попыткуиностранный зверь (а из чего еще я вижу, преуспевающего?).Я также пришел к выводу, что

<php header('Content-Type: text/html; charset=utf-8'); ?>

- отличное место для начала, и что я должен искать поддержку UTF-8, так как у меня достаточно места на моем (совместно используемом, на данный момент) хостинге,

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

Итак, я пришел к вам в поисках просветления и, возможно, исправления.мой растерянный (где дело касается Unicode!) мозг.Я действительно хочу поддержать его, но мне нужна серьезная помощь.

PS: Unicode влияет на mysql_real_escape_string () или любые другие меры по предотвращению / безопасности XSS?Мне нужно быть в курсе всего этого!

Спасибо заранее.

  • Добавление Javascript в микс, так как я буду использовать смесь pure и jQuery ине знаю о поддержке Unicode + этот язык.;)

Ответы [ 3 ]

5 голосов
/ 18 января 2011
  1. Добро пожаловать на борт utf8 :)
  2. Вы должны просто использовать функции mb_ * в место вашей традиционной ул * Функции
  3. MySQL и его API имеют давно и хорошо поддерживаю utf8, единственное требование, которое вы используете кодирование при сохранении данных и подключения. Google для 'SET NAMES utf8 '
  4. Обратите внимание на модификатор 'u' для preg_ * функции, которые говорят им использовать режим Unicode.
1 голос
/ 18 января 2011
0 голосов
/ 18 января 2011

При работе с юникодом:

  • используйте <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> в верхней части страницы при выводе
  • сразу после подключения к базе данных используйте SQL-запрос: mysql_query("set names 'utf8'");
  • убедитесь, что все таблицы и обязательные поля имеют тип сортировки: 'utf8_unicode_ci'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...