最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

[MySQLFAQ]系列--utf8表存储latin1乱码字符转换

来源:动视网 责编:小采 时间:2020-11-09 13:09:38
文档

[MySQLFAQ]系列--utf8表存储latin1乱码字符转换

[MySQLFAQ]系列--utf8表存储latin1乱码字符转换:线上有个数据表,字符集是utf8,但由于环境不统一的原因,导致实际上数据表存储的内容是latin1内码的数据。 也就是说,借着utf8的壳子,实际存储着latin1字符集的数据。 在这种情况下,需要注意几个字符集配置: 客户端终端工具(SecureCRT)的显示字符
推荐度:
导读[MySQLFAQ]系列--utf8表存储latin1乱码字符转换:线上有个数据表,字符集是utf8,但由于环境不统一的原因,导致实际上数据表存储的内容是latin1内码的数据。 也就是说,借着utf8的壳子,实际存储着latin1字符集的数据。 在这种情况下,需要注意几个字符集配置: 客户端终端工具(SecureCRT)的显示字符


线上有个数据表,字符集是utf8,但由于环境不统一的原因,导致实际上数据表存储的内容是latin1内码的数据。 也就是说,借着utf8的壳子,实际存储着latin1字符集的数据。 在这种情况下,需要注意几个字符集配置: 客户端终端工具(SecureCRT)的显示字符集设置

线上有个数据表,字符集是utf8,但由于环境不统一的原因,导致实际上数据表存储的内容是latin1内码的数据。
也就是说,借着utf8的壳子,实际存储着latin1字符集的数据。
在这种情况下,需要注意几个字符集配置:

  • 客户端终端工具(SecureCRT)的显示字符集设置为:utf-8,
  • Linux终端(TERM)下,设置LANG环境变量为:en_US.UTF-8,或者zh_CN.UTF-8,
  • 连接到MySQL后,设置client/connect字符集为:latin1 (set names latin1)。
  • 完成上述设置后,在Linux命令行的mysql cli客户端中才能正常显示中文。
    为了统一,需要将这些数据的内码也转成utf8才行,可以按以下几个步骤完成:

  • 用latin1字符集将原始数据导出,确保在本地客户端(中文环境)下用文本编辑器可以正常查看,
  • 用文本编辑器另存为utf-8字符集后上传到server端 或者 把数据直接拷贝到
  • Linux终端下,新建一个文件,直接将数据粘贴进去,
  • 清空数据表(truncate),修改字符集(alter table xx default charset = utf8),
  • 将文本导入到数据表中。
  • 上面是比较笨的手工操作方法,以演示整个过程。
    如果表里存储比较复杂的数据时,建议写程序进行转换,毕竟内码不同,无法直接在线转换。

    其他参考文章:
    小谈MySQL字符集
    [MySQL FAQ]系列-字符集兼容性测试

    技术相关:

    MySQL FAQ

    文档

    [MySQLFAQ]系列--utf8表存储latin1乱码字符转换

    [MySQLFAQ]系列--utf8表存储latin1乱码字符转换:线上有个数据表,字符集是utf8,但由于环境不统一的原因,导致实际上数据表存储的内容是latin1内码的数据。 也就是说,借着utf8的壳子,实际存储着latin1字符集的数据。 在这种情况下,需要注意几个字符集配置: 客户端终端工具(SecureCRT)的显示字符
    推荐度:
    标签: 保存 转换 乱码
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top