欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

一个让人恶心的乱码有关问题

程序员文章站 2022-06-17 22:14:42
...
一个让人恶心的乱码问题
程序中需要往另外一个数据库里插入一条数据
本身的程序和数据库都是UTF-8 但是另一个数据库编码很乱,结果是插入不进去或者是乱码,CREATE TABLE IF NOT EXISTS `mem_m` (
`MemM_LoginName` varchar(20) CHARACTER SET latin1 DEFAULT NULL COMMENT 'μ?????',

就是这个字段,
show variables like 'character_set_%';显示如下
Variable_name Value
character_set_client utf8
character_set_connection latin1
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8

请教如何解决

------解决方案--------------------
`MemM_LoginName` varchar(20) CHARACTER SET latin1 DEFAULT NULL COMMENT 'μ?????',
就是
`MemM_LoginName` varchar(20) CHARACTER SET latin1 DEFAULT NULL COMMENT '登录名',
这个表实际上是在 gbk 环境中创建的
虽然是 CHARACTER SET latin1
但表中的内容仍然是 gbk 的

如果你只是想读取其中的内容,那么访问它时可不用
set names 指令,如果要用,也应该是
set names latin1
读取到的内容用 iconv('gbk', 'utf-8', $MemM_LoginName) 转换成 utf-8 后使用

如果想整表转换也是可以的,但要使用 mysqldump 工具而不是 phpmyadmin
方法就不赘述了,你可以搜索一下 “gbk latin1”
一个让人恶心的乱码有关问题

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频


网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • 一个让人恶心的乱码有关问题
  • 专题推荐