1. 问题描述
在erlang中,使用google 的 mysql控件与mysql数据库进行交互。但是,写入到mysql数据库中的中文汉字均为乱码
2. 解决方法
① 问题原因可能在于, mysql系统没有正确支持汉字编码. 可以使用如下指令查询mysql各个环节的编码方式
mysql>> show variables like 'character%';
② 具体到erlang的mysql控件, 对格式的控制体现在连接时的编码控制符, 如下:
mysql:start_link(mysql_leo, Host, Port, User, Pwd, DB, LogFun, utf8)
其中,最后一个参数utf8规定mysql的连接编码格式为utf8. 本文之所以出现乱码问题,原因就在于没有设置这个参数(默认不是utf8)
3. 深入描述
在linux下, 可以通过配置文件my.cnf修改mysql默认的编码格式,描述如下:
①在[client]下增加
default-character-set=utf8
②在[mysqld]下增加
default-character-set=utf8
init_connect='SET NAMES utf8'
这里没有进行验证,请读者自己尝试.