MySQL关于latin1存储汉字的问题

大萌熊 2014-07-08 11:21:55
由于客户数据库本身的编码是不能改动的,因为改动了不能保证以前的数据是否会正常。
character_set_client utf8
character_set_connection utf8
character_set_database latin1
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir D:\Program Files\MySQL\MySQL Server 5.5\share\charsets\
,所以有没有上面办法在不改变编码latin1的基础上,把汉字存进去,因为latin1一存汉字就报错(Incorrect string value \\\\\\\......),,找了好多网上的办法,大多数都是改为gbk或者utf8, 现在latin1不能改动,数据库也不能删除数据,有没有大神有什么办法吗?

还有一个问题就是:
my.ini中,
[client]

port=3306

[mysql]

default-character-set=latin1

[mysqld]
....
port=3306
......
character-set-server=latin1

在代码中,执行一条update语句, 返回很正常,为1 ,
但是如果把my.ini文件中以上改为latin1 ,
这条update不管是不是乱码,是不是utf8编码,执行结果都是 0,
然后最奇怪的是,把这条update语句拿到mysql数据库查询直接执行,返回结果就是1 。
我猜还是因为编码问题,难道latin1把update整条语句都弄成乱码了?

求大神~
...全文
324 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ComBat_Func 2014-07-13
  • 打赏
  • 举报
回复
在程序上下功夫吧,悲催的楼主; 尽量不要使用工具建表,有的工具是国外的,默认都是那些编码
大萌熊 2014-07-08
  • 打赏
  • 举报
回复
不好意思,更正补充一下:正常执行的是utf8 ,改为latin1才是执行不正常的 my.ini中, [client] port=3306 [mysql] default-character-set=utf8 [mysqld] .... port=3306 ...... character-set-server=utf8
ACMAIN_CHM 2014-07-08
  • 打赏
  • 举报
回复
汉字要用UTF9或者GBK
benluobo 2014-07-08
  • 打赏
  • 举报
回复
可以在create table的时候设置table的character为utf8 不改变你的默认设置Latin1

56,681

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧