如何使用 PHP 将非英文字符正确保存到 MySQL 数据库中?
Posted
技术标签:
【中文标题】如何使用 PHP 将非英文字符正确保存到 MySQL 数据库中?【英文标题】:How to properly save non english character into MySQL database using PHP? 【发布时间】:2012-07-05 22:47:37 【问题描述】:我正在解析网站的 html 并将信息保存到数据库中,但在网站中,应该将非英文字符(如中文、印度文、韩文等)保存到 mysql 中。我的问题是在 MySQL 中(当我使用 php MyAdmin 查看这些信息时),它会显示奇怪的字符。
Ä°lginç Gerçekler ê³µì—°ì •ë³´ PARTI(ì—°ê·¹,ì½∼서트,뮤지컬,ì∼¤í... ì •ì‹ ì—°ë ¹ 테스트
如何正确地将这些信息保存到数据库中?
【问题讨论】:
【参考方案1】:尝试使用
mysql_query("SET NAMES 'UTF8'");
在 mysql_connect 或 mysql_select_db 之后。我用它来表示土耳其语 mysql_query("SET NAMES 'latin5'");
【讨论】:
【参考方案2】:首先确保表和行编码是 UTF-8 格式的。 接下来,您应该将 PHP 脚本文件保存为 UTF-8 编码,带或不带 BOM。
或者您可以尝试使用htmlspecialchars(); 函数来做到这一点。
【讨论】:
【参考方案3】:您必须将插入和/或表格转换为另一种编码样式。方法如下:http://dev.mysql.com/doc/refman/5.0/en/charset-convert.html
【讨论】:
【参考方案4】:将表格排序规则更改为 utf8
$con=mysql_connect("hostname","username","password");
mysql_query("SET CHARACTER SET utf8",$con);
还要检查this post
【讨论】:
以上是关于如何使用 PHP 将非英文字符正确保存到 MySQL 数据库中?的主要内容,如果未能解决你的问题,请参考以下文章
如何将非通用排序列表保存到文件中,以便可以从文件中加载该排序列表?
使用 NAudio 如何将非隔行扫描 32 位浮点格式保存到文件
在 MS Access (VBA) 中使用 ADODB 将非 ASCII 插入 MySQL 数据库时出现“不正确的字符串值”,但重试有效