我将PDO库与PHP中的MySQL数据库一起使用,但是如果我插入任何以UTF-8编码的数据(如阿拉伯文字),则会将其插入数据库中,但是为?????????
。
在我自己的框架中,创建PDO连接后,我发送两个查询– SET NAMES utf8
和SET CHARACTER SET utf8
。它仍然不起作用。
例:
loadclass('PDO', array(
sprintf(
'mysql:host=%s;port=%s;dbname=%s',
confitem('database', 'host'),
confitem('database', 'port'),
confitem('database', 'name')
),
confitem('database', 'username'),
confitem('database', 'password'),
array('PDO::ATTR_PERSISTENT' => confitem('database', 'pconnect'))
));
$this->query('SET NAMES ' . confitem('database', 'charset'));
$this->query('SET CHARACTER SET ' . confitem('database', 'charset'));
解决方法:在json_encode
将数据插入数据库之前,使用该函数转换数据,并json_decode
在提取后用于解码。这就是我现在的做法。
采用:
$pdo = new PDO(
'mysql:host=hostname;dbname=defaultDbName',
'username',
'password',
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")
);
它在PDO连接上强制使用UTF-8。它为我工作。
问题内容: 我正在修复一些错误的UTF-8编码。我目前正在使用PHP 5和MySQL。 在我的数据库中,我有一些编码错误的实例,例如:ƒ 数据库整理是utf8_general_ci PHP使用的是正确的UTF-8标头 Notepad ++设置为使用不带BOM的UTF-8 数据库管理在phpMyAdmin中处理 并非所有重音符号的情况都被破坏 我需要某种函数来帮助我将ƒ,®,?,?¼和其他类似的实例
问题内容: 在MySQL中,如果我在UTF-8表中创建一个新字段,是否意味着我可以在该字段中存储32个字节的数据或32个字符(多字节)? 问题答案: 这个答案出现在我的Google搜索结果的顶部,但不正确,所以: 混乱可能是由于测试了不同版本的mysql。 版本4计数字节 版本5包含字符 http://dev.mysql.com/doc/refman/5.0/zh-CN/string-type-
问题内容: 首先,一个简单的测试代码: 该测试代码使用Java 7仅创建一个文件“ test_0_0.log”,无论我运行该程序的频率如何。这是预期的行为,因为构造函数中的append参数设置为true。 但是,如果我使用Java 8运行此示例,则每次运行都会创建一个新文件(test_0_0.log,test_0_1.log,test_0_2.log等)。我认为这是一个错误。 恕我直言,Java的
问题内容: 我想从请求中获取参数(带有重音符的字符),但是它不起作用。我尝试使用,但也没有用。 我知道返回正确的字符,但不起作用! 有人有主意吗? 问题答案: Paul的建议似乎是最好的做法,但如果要解决此问题,则根本不需要URLEncoder或URLDecoder: 更新: 由于获得了很多选票,我想强调BalusC的观点,即这绝对不是解决方案。充其量是一种解决方法。人们不应该这样做。 我不知道是
问题内容: 我正在用python做一些脚本。我创建一个保存在文件中的字符串。这个字符串有很多数据,来自目录的树状结构和文件名。根据convmv的介绍,我所有的树状结构都是UTF-8。 我想将所有内容都保留在UTF-8中,因为之后我将其保存在MySQL中。现在,在UTF-8的MySQL中,我遇到了一些字符问题(例如é或è-我是法语)。 我希望python始终将字符串用作UTF-8。我在互联网上阅读了
问题内容: 我的系统在 Linux Mandriva ,RDBMS- MySQL 5上运行 。我需要在 UTF-8中 创建数据库和表。 这是 hibernate.cfg.xml 的片段- my.cnf中 - 某类,例如- 但是在生成表时,我看到了编码 latin1 例如- 如何将编码更改为 UTF-8 ? 我将不胜感激!谢谢! … 这就奇怪了,我已经改变了所有 UTF8 - 现在 - 问题答案: