Персидские слова в базе данных и это вопрос? - PullRequest
2 голосов
/ 29 августа 2011

Зачем вставлять в базу данных дату в виде: شهريور?

Как можно искать это слово в базе данных (شهريور)?

 In database: structure => date => varchar(255) => utf8_general_ci = "شهريور".

Ответы [ 2 ]

2 голосов
/ 29 августа 2011

Ваш веб-сайт использует кодировку, в которой эти символы не существуют, поэтому браузер вместо этого отправляет объекты HTML.

(Попробуйте здесь: http://codepad.viper -7.com / dfFMvW ; Эта страница находится в ISO-8859-1, если вы отправляете символы не-ISO-8859-1 во входных данных, они отправляются как объекты HTML.)


Чтобы избежать этого, вы должны использоватьдругая кодировка, например UTF-8.

Добавьте этот заголовок в свой тег <head>:

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

Или сделайте это в своем PHP перед тем, как что-либо напечатать:

header('Content-Type: text/html; charset=UTF-8');

И убедитесь, что ваша база данных также использует UTF-8.


Вы можете преобразовать свою базу данных в UTF-8, выполнив следующее:

ALTER DATABASE your_database CHARACTER SET utf8;
-- for each table:
ALTER TABLE some_table CONVERT TO CHARACTER SET utf8;

И после подключения кбазы данных, отправьте этот запрос:

SET NAMES UTF8;
1 голос
/ 29 августа 2011

Вам не нужно html экранировать эти символы, если у вас есть таблица UTF *, и вы это делаете.

Просто убедитесь, что таблица UTF8, соединение utf8, а браузер читает текст как utf8.

  • для MySQL см. SET CHARACTER SET, SET NAMES, SET COLLATION_CONNECTION
  • для html используйте <meta content="text/html;charset=UTF-8" http-equiv="Content-Type" /> и соответствующие заголовки http, если необходимо
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...