2 u014734740 u014734740 于 2016.01.24 22:19 提问

网页获取json其中的中文全部显示为问号

我用的开发工具为Mysql绿色版+vs2013。
我先尽量详细地说一下我遇到的如题的问题,搞了好多个小时了,实在解决不了,求大神帮助!
首先我在mysql中有张表名为user中有一个属性为name,其中有几个值为“张三”,“李四”,“王五”,还有几个值为“111”,“222”
然后我用select name from user在mysql中测试了一下,包括中文在内的所有结果都显示正常。
接着我在搭建的服务器端的vs中写了一个cs文件,用sql语句加连接数据库语句获取了user表中的所有name值到dataTable中,然后用Dictionary逐条获取datatable中的name值并添加到一个Arraylist中,然后用JavaScriptSerializer对象序列化了这个Arraylist,并转化为JArray类型返回。
然后的然后,问题就在这里,我不知道上述的哪个步骤有问题,我用谷歌游览器访问服务器端的cs文件的url时,返回的所有name值中,例如”111“,"222"全部显示正常,但是例如”张三“,”李四“,”王五“在内的所有中文都显示成了”???“。
我查了很多的百度资料,有的人说设置response.setencode,这个类似的方法我试了很多种,证实无效;还有类似设置游览器的编码等我也试过,也无效;还有我尝试改变了从数据库中获取数据转化成Json的方法,也无效。总之,返回的JArray中的中文,一直都显示成了问号形式,求解问题到底出在哪里?!
PS:我还试过改变mysql中name属性的编码,也无效……

4个回答

oyljerry
oyljerry   Ds   Rxr 2016.01.24 22:47

数据库中先看是什么编码 查询出数据后传给网页再对应编码解码

u014734740
u014734740 数据库中是utf-8 网页也是utf-8
接近 2 年之前 回复
u014734740
u014734740   2016.01.24 22:48

数据库中uft-8 网页也是utf-8

csdnzlw
csdnzlw   2016.01.24 22:50

mysql字段编码改成utf-8

u014734740
u014734740 应该不是编码的问题,因为我得到的不是乱码,而全都是问号……
接近 2 年之前 回复
u014734740
u014734740 没有用啊……这些我都试过了
接近 2 年之前 回复
a510835147
a510835147   2016.01.25 08:52

乱码了。 你可以先试下在CS文件中打印下从数据库的数据,假如在这里还没有乱码,那就说明是写出响应文本的时候乱码了的。
你会抓包的话,可以看一下响应头Content-Type,看看编码是不是UTF-8。
假如不是,设置下响应编码
response.setContentType("application/json;charset=utf-8"); 我不确定.net也是这样写的。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!