编码在PHP罗马尼亚语字符

问题描述 投票:-1回答:3

我有这个样子O问题编码字符:ĂăÂâÎŢţ我使用下面的MySQL表:

CREATE TABLE `news` (
  `NewsID` int(11) NOT NULL AUTO_INCREMENT,
  `UserID` int(11) NOT NULL,
  `Title` varchar(255) CHARACTER SET utf8 NOT NULL,
  `Date` datetime NOT NULL,
  PRIMARY KEY (`NewsID`),
  FULLTEXT KEY `Title` (`Title`,`Content`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_bin

我尝试通过使用下面的代码(关于Zend框架运行)以插入上部上述字符序列中的Title字段:

$params = $this->getRequest()->getParams(); 
$mysqli = new mysqli("localhost", "user", "pass", "database_name");
$mysqli->query("INSERT INTO `news` (`NewsID`, `Title`) VALUES (NULL, '".$params['text']."');");

并在数据库中,我得到了现场Title以下值:ÃãÂâÎŢţ为什么这些字符的HTML编码?为什么不是第一个字符编码为他们utf8_bin相同呢?谢谢。

php mysql character-encoding
3个回答
2
投票

在我来说,我刚刚更新的PHP数据库连接设置与以下行:

mysqli_set_charset( $con, 'utf8'); 

此外,我加入HTML文件meta http-equiv="content-type" content="text/html; charset=UTF-8"为@liyakat提及。

旧线,但也许有人需要知道这一点。


0
投票

确保您的IDE或文本编辑器也被设置为使用UTF-8字符。


0
投票

要设置默认为UTF-8,要添加以下到my.cnf文件

[客户]默认字符集= UTF8

的[mysqld]默认字符集= UTF8然后,以验证:

mysql> show variables like "%character%";show variables like "%collation%";

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database   | utf8_general_ci |
| collation_server     | utf8_general_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)

或尝试

尝试设置MySQL连接到UTF-8:

SET NAMES 'utf8'

和发送明确的UTF-8头,以防万一你的服务器有一些其他默认设置:

header('Content-type: text/html; charset=utf-8');
© www.soinside.com 2019 - 2024. All rights reserved.