sql查询的数据出现乱码问题

sql查询的数据出现乱码问题,第1张

1。select from v$nls_parameters

查询nls的参数,获得数据库服务器端的字符编码

NLS_LANGUAGE

NLS_CHARACTERSET

2。修改本地环境变量,设置

NLS_LANG = SIMPLIFIED CHINESEZHS16GBK //这个是我们的数据库字符编码

NLS_LANG格式

NLS_LANG = language_territorycharset

有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。其中:language 指定服务器消息的语言。

territory 指定服务器的日期和数字格式。

charset 指定字符集

试试看下面这个

Systemoutpritnln(new String(rolesget(0)getName()getBytes("iso-8859-1"),"utf-8"));

你的问题可能有两个原因 :

1 数据库使用 非 utf-8 编码

2 网页没有指定为 utf-8编码

第二种情况的可能性更大,浏览器默认使用gbk编码

解决方法 :

1 使用header()函数指定编码,在脚本第一行加入 : header('Content-Type:text/html;chaset:utf-8');

2 使用

<meta >

中文乱码问题经常会出现

1、数据库、数据表、字段 编码格式要保持一致

2、如果在doc界面录入数据,要保持当前编码格式与数据表编码格式一致

3、php读取数据显示,要保持文件的编码格式、html页面的编码格式同数据库一致,编码格式为utf-8或gb2312或gbk

4、php连接数据库之后mysql_query('set names gbk')

你的问题应该是数据库编码格式不是utf-8,查看一下

初步:格式统一

str

=

new

String(strgetBytes("ISO-8859-1"),

"utf-8");

这里不用转,可以去掉。{ %@page

language

=

"java"contentType

=

"text/html;

charset

=

gb2312

"%String

url

=

"jdbc:mysql://localhost/jdbcuseUnicode=true&characterEncoding=gb2312";

}这转码格式统一用UTF-8。另外更改该显示页面的本身属性utf-8。数据库对varchar类型字段统一UTF-8类型。[此处统一编码即可]中间[此处用不到]:利用js自带的函数对中文地址栏上传参进行转码。例如{var

actname

=

encodeURIComponent(encodeURIComponent('<%=requestgetAttribute("actname")%>'));}尾声[此处用不到]:获取后

URLDecoderdecode(actname,

"utf-8");

最后还不行,只能自己写个转码工具类进行转。

首先要检查是数据库里数据的乱码

还是在servlet

outprint时乱码。

如果只是输出乱码。在输出前加上

responsesetContentType("text/html;charset=GBK");

就好。

就是给要输出的流内容编码成gbk

数据库数据本身乱码的话,就要看数据库的编码设置了。。

怀疑是pymssqlconnect指定的字符集跟数据库使用的字符集不符,尝试修改charset。

也可以参考《pymssql中文显示乱码》里面类似的方法来处理

unicode变量encode('latin1')decode('gbk')

以上就是关于sql查询的数据出现乱码问题全部的内容,包括:sql查询的数据出现乱码问题、从数据库取出数据乱码问题、php输出固定长度的数据库字段乱码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9484788.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存