我将这些行添加到我的默认文件,重新启动的服务器,重新创建的模式,表格中的表格和数据,但我的西里尔文数据仍然看起来像'????'。 现在我有一个新用户和这样的配置,但utf8仍然无法正常工作。
[mysqld]
init-connect=SET NAMES utf8
character-set-server=utf8
character-sets-dir=/usr/share/mysql/charsets
default-character-set=utf8
[mysql]
character-sets-dir=/usr/share/mysql/charsets default-character-set=utf8
[mysqladmin]
character-sets-dir=/usr/share/mysql/charsets default-character-set=utf8
[mysqlcheck]
character-sets-dir=/usr/share/mysql/charsets default-character-set=utf8
[mysqldump]
character-sets-dir=/usr/share/mysql/charsets default-character-set=utf8
[mysqlimport]
character-sets-dir=/usr/share/mysql/charsets default-character-set=utf8
[mysqlshow]
character-sets-dir=/usr/share/mysql/charsets default-character-set=utf8
#end
答案 0 :(得分:1)
我用默认的my.cnf替换了my.cnf,添加了
CHARACTER SET utf8 COLLATE utf8_general_ci;
用于DB和所有表。
现在它工作正常!非常感谢你!
答案 1 :(得分:0)
这可能会成功。您需要在执行INSERT
或UPDATE
之前直接执行小型查询。在我的db-class中,它看起来像这样,可以根据您的需要进行调整。 $charset
需要" utf8"
$db->query('SET CHARACTER SET "' . $charset . '";');
$result = $db->query($query);
我像这样调用函数
$result = $ddlab->db->db($sql,'utf8');
祝你好运!
答案 2 :(得分:0)
init-connect=SET NAMES utf8
这个命令很重要。但是,当您以root
(或其他SUPER
用户)身份进行连接时,将跳过该命令。
此外,您需要确保客户端中的字节是utf8。
显示屏是utf8。
如果您使用的是mysql命令行工具: 命令“chcp”控制“代码页”。 chcp 65001提供了utf8,但它也需要安装一个特殊的字符集。 在控制台窗口中设置字体:右键单击窗口标题→属性→字体→选择Lucida控制台“
修改2
进入Workbench(用于INSERTing文本?)并执行SELECT HEX('Ремонтные');
这应该给出Workbench中字符集的线索。 utf8会说D0A0D0B5D0BCD0BED0BDD182D0BDD18BD0B5
(注意Dxyy模式); cp866会说90A5ACAEADE2ADEBA5
(注意:高位开启)。啊哈! latin1会说3F3F3F3F3F3F3F3F3F
。看起来熟悉?????提示:我指着Workbench,或者你使用它。