+ -
当前位置:首页 → 问答吧 → 中文表單及csv上傳至mysql後變成亂碼

中文表單及csv上傳至mysql後變成亂碼

时间:2010-09-05

来源:互联网

我有一个表单, 类似会员系统让会员填写客户资料, 但是当客户是用中文填写时, 上传至资料库后就变成乱码. 同样的, 我用 csv 批次上传资料时, 如果内容是中文, 上传后也是变成乱码. 请问该如何解决这个问题呢? 是phpmyadmin设定问题吗? 但是, 填写时有可能是繁体, 简体, 及英文, 怎么样可以让资料库接收三种文字呢?

PS 如果我是在phpmyadmin中利用插入的方式输入中文, 就可在资料库中显现.
PS 我的hosting是用 windows 2008, 不知道与此是否有关.

谢谢!

作者: sbfl26   发布时间: 2010-09-05

引用自: sbfl26 於 2010-09-05 19:57
我有一个表单, 类似会员系统让会员填写客户资料, 但是当客户是用中文填写时, 上传至资料库后就变成乱码. 同样的, 我用 csv 批次上传资料时, 如果内容是中文, 上传后也是变成乱码. 请问该如何解决这个问题呢? 是phpmyadmin设定问题吗? 但是, 填写时有可能是繁体, 简体, 及英文, 怎么样可以让资料库接收三种文字呢?

PS 如果我是在phpmyadmin中利用插入的方式输入中文, 就可在资料库中显现.
PS 我的hosting是用 windows 2008, 不知道与此是否有关.

谢谢!

请确认你的资料、网页、资料库都使用 utf-8 编码

作者: Yamaka   发布时间: 2010-09-05

引用自: Yamaka 於 2010-09-05 20:39
引用自: sbfl26 於 2010-09-05 19:57
我有一个表单, 类似会员系统让会员填写客户资料, 但是当客户是用中文填写时, 上传至资料库后就变成乱码. 同样的, 我用 csv 批次上传资料时, 如果内容是中文, 上传后也是变成乱码. 请问该如何解决这个问题呢? 是phpmyadmin设定问题吗? 但是, 填写时有可能是繁体, 简体, 及英文, 怎么样可以让资料库接收三种文字呢?

PS 如果我是在phpmyadmin中利用插入的方式输入中文, 就可在资料库中显现.
PS 我的hosting是用 windows 2008, 不知道与此是否有关.

谢谢!

请确认你的资料、网页、资料库都使用 utf-8 编码

1. 请爱用utf-8.
2. 建议要先熟练基本语法比较好,这样会比较清楚.
3. 可以用 show create database your_database
             show create table your_table
    来观察create时的CHARSET,COLLATE;
    要修改也很简单,就把show 出来的语法,修改为需要的charset就好.
4. phpmyadmin 也会显示语法,最好是把过程产生的语法都纪录下来,这样就会比较好追查.
    一路next下去,有问题时就缺少资料,然后就会联想一大堆无关的,又累又忙.
5. mysql client 有 --tee 可以帮你纪录操作的过程.

作者: bunko   发布时间: 2010-09-05

我把网页改为<meta http-equiv="Content-Type" content="text/html; charset=utf-8">, 资料库, Table 等都改为utf8_general_ci, 再在php中加了一句 mysql_query("set names 'utf8'"); 之后, 填写中文的表单就可以上传到资料库储存中文资料. 但是出现了一些问题: 我的页面变成了乱码. 我记得最初在制做网页时, 我的网页编码是 utf-8, 但是利用FTP上传后, 出现的都是乱码, 我当时就乱试, 发现如果是charset=gb2312, 就可以正常显示简中的页面, 我就把所有的网页都换成了charset=gb2312. 现在改回charset=utf8后, 就又出现了乱码. 我也按照网上找到的资料, 确认我的文件存档的编码也是 utf-8, 仍然是乱码. 请问还有哪里要注意的呢?

作者: sbfl26   发布时间: 2010-09-09

呃...既然用 gb2312 编码浏览网页才正常
那就表示你网页内文的编码其实是 gb2312,最好再确认一下喔 ~

光改那行 charset 是不会转换文件编码的 @@

另外,看到你说「简中页面正常」,所以网站是多语言的吗?
如果你的简体中文页面是用程式翻成简体中文的
也是有可能那个程式自动帮你改成 gb2312 编码...

作者: 風痕影   发布时间: 2010-09-12

发现档案中有 request, 而被request的档案编码是 gb2312, 修改后就可以了. 

作者: sbfl26   发布时间: 2010-09-14