Home  >  Article  >  Backend Development  >  一个让人恶心的乱码有关问题

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

WBOY
WBOYOriginal
2016-06-13 12:55:321070browse

一个让人恶心的乱码问题
程序中需要往另外一个数据库里插入一条数据
本身的程序和数据库都是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”
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn