如何使用 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 数据库时出现“不正确的字符串值”,但重试有效

将非www重定向到www的最佳方法?

将非框架 PHP 项目移植到 Laravel 4.x

用于将非英文字符存储到 SQL 数据库的 HTML/ASPX 文本框