数据库中的波斯语是什么问题?

时间:2011-08-29 14:06:18

标签: php codeigniter character-encoding

为什么在数据库值日期中插入:شهريور

如何在数据库中搜索这个单词(شهريور)?

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

2 个答案:

答案 0 :(得分:2)

您的网站使用的编码不存在这些字符,因此浏览器会发送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 :(得分:1)

只要你有一个UTF *表,你就不需要html转义那些字符了。

只需确保表格为UTF8,连接为utf8,浏览器将文本读取为utf8。

  • for mysql请参阅SET CHARACTER SETSET NAMESSET COLLATION_CONNECTION
  • 用于html使用<meta content="text/html;charset=UTF-8" http-equiv="Content-Type" />和相应的http标头(如果需要)