① sql语句select as中文为乱码
public List getOrganizationInfoByLikeName(
String likeName) throws UnsupportedEncodingException {
//String name = new String(likeName.getBytes("UTF-8"),"GBK");
String sql = "from OrganizationInfo org where org.name like '"+likeName+"%'";
return getHibernateTemplate().find(sql);
}
拼出来的sql条件语句字段是乱码导致查询不到记录,怎么处理?
Hibernate: select organizati0_.ID as ID, organizati0_.CODE as CODE10_, organizati0_.NAME as NAME10_, organizati0_.YJ_ORGANIZATION_CODE as YJ4_10_, organizati0_.LOGIC_CODE as LOGIC5_10_, organizati0_.ORG_TYPE as ORG6_10_, organizati0_.ORG_PERIOD_TYPE as ORG7_10_, organizati0_.PARENT_ORG_ID as PARENT8_10_, organizati0_.FITECH_FILLER as FITECH9_10_, organizati0_.FITECH_CHECKER as FITECH10_10_, organizati0_.FITECH_PRINCIPAL as FITECH11_10_, organizati0_.IS_DELETED as IS12_10_, organizati0_.conver_code1 as conver13_10_, organizati0_.conver_code2 as conver14_10_, organizati0_.conver_code3 as conver15_10_, organizati0_.ORG_FLAG as ORG16_10_, organizati0_.SUM_FLAG as SUM17_10_, organizati0_.RH_ORG_CODE as RH18_10_, organizati0_.RH_LOC_CODE as RH19_10_, organizati0_.RH_SYSTEM_CODE as RH20_10_, organizati0_.RHN_ORG_CODE as RHN21_10_, organizati0_.RHN_SYSTEM_CODE as RHN22_10_ from ORGANIZATION_INFO organizati0_ where organizati0_.NAME like '????%'
② sql查询的数据出现乱码问题
1。select * from v$nls_parameters
查询nls的参数,获得数据库服务器端的字符编码
NLS_LANGUAGE
NLS_CHARACTERSET
2。修改本地环境变量,设置
NLS_LANG = SIMPLIFIED CHINESE.ZHS16GBK //这个是我们的数据库字符编码
NLS_LANG格式:
NLS_LANG = language_territory.charset
有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。其中:language 指定服务器消息的语言。
territory 指定服务器的日期和数字格式。
charset 指定字符集
③ 数据库mysql中文显示乱码问题。命令行直接select *from student;显示不乱码,但是通过函数获取结果集乱码
1.server本身设定问题,例如还停留在latin1
2.table的语系设定问题(包含character与collation)
3.客户端程式(例如php)的连线语系设定问题~
④ 解决plsql链接oracle查询出汉字显示为乱码的问题
1.首先通过SQL语句:
select userenv('language') from al;
查询出服务器端的编码,如我自己的查询结果为:
USERENV('LANGUAGE')
AMERICAN_AMERICA.ZHS16GBK
2.添加环境变量NLS_LANG ,值为: AMERICAN_AMERICA.ZHS16GBK,由此即可解决该问题。
⑤ 执行sql语句乱码
1、更改数据库,将数据库字符集设置成gb2312,数据库校对规则也设置成gb2312_chinese_ci
2、更改表,将表字段中的字符集设置成gb2312,校对规则也设置成gb2312_chinese_ci
调制成功后就OK了,然后,你PHP页面也要设置成GB2312,这样提交的时候才不会乱码
之前我也有过这经验
⑥ sql语句有中文,乱码怎么解决
方法一:
通过增加参数
–default-character-set
=
utf8
解决乱码问题
mysql
-u
root
-p
password
<
path_to_import_file
–default-character-set
=
utf8
方法二:
在命令行导入乱码解决
1.
use
database_name;
2.
set
names
utf8;
(或其他需要的编码)
3.
source
example.sql
(sql文件存放路径)
方法三:
直接粘贴sql文件里的代码
1.
打开sqlyog客户端软件;
2.
定位到sql编辑器,然后用记事本打开刚刚导出的sql文件;
3.
复制文件中所有sql语句到sql编辑器当中,执行这些sql代码;
方法四:
用记事本或其他文本工具改变sql文件的编码格式(若方法三不行,那就尝试方法四)
1.
用记事本(或ue)打开刚才的导出的sql文件;
2.
另存此文件——打开另存为对话框,选择对话框中的编码格式为unicode编码;
3.
保存文件,然后ctrl+a,全选;
4.
复制里面的sql语句到sqlyog中的“sql编码器”当中,再执行一次sql语句;
5.
执行完成后切记刷新一次,查看中文的数据表,乱码消除,大功告成;
⑦ Sql server出现中文乱码怎么办
如果是SQL管理端查看数据表时出现的乱码,需要调整数据库的collection字符集,即调整某个表对于字符集的处理,特别是你通过SQL导入数据时,建议先用可以指定字符集的文本编辑器另存一下,再导入,保险的话把所有会存中文的Vchar字段改为Nvarchar。如果是前端或是网页取SQL数据后显示的乱码,则需要调整或指定前端或网页用的字符集。有时用utf-8反而容易出现乱码的。
⑧ 在linux命令行中执行sql查询出现乱码
select userenv('language') from al;
先确认Oracle的字符集,sqlplus登录Oracle后执行语句:
select userenv('language') from al;
返回值例如:AMERICAN_AMERICA.ZHS16GBK
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
修改Linux的NLS_LANG环境变量,修改Oracle指定的Linux用户下面“.base_profile”文件,加入如下:
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
用Linux命令“source ~/.base_profile”或者重启,使环境变量设置生效;查看环境变量的Linux命令为“echo $NLS_LANG”。
⑨ sqlplus运行出现中文乱码怎么解决
在用PLSQL登录oracle数据库时可能遇到报错如下:
数据库字符集(ZHS16GBK)和客户端字符集(2%)是不同的,字符集转化可能会造成不可预期的后果 不管错误信息中你的数据库字符集是什么,都是由于数据库服务端和你的客户端字符集不统一造成的。
NLS_LANG参数
影响Oracle数据库字符集最重要的参数是NLS_LANG参数。
它的格式如下: NLS_LANG =
language_territory.charset
它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。
其中:
1. Language: 指定服务器消息的语言, 影响提示信息是中文还是英文
2. Territory: 指定服务器的日期和数字格式,
3. Charset: 指定字符集。
我电脑是
:AMERICAN_AMERICA.ZHS16GBK
可以通过以下方法解决:
1. 查询数据库服务端的字符集
select * from nls_database_parameters 可以分别查出字符集各组成部分的值
2、服务器端结果: AMERICAN_AMERICA.ZHS16GBK
或者用 select userenv(‘language’) from al 可以整体查出。
也可以用 select * from nls_instance_parameters 查看你客户端的字符集
3、修改客户端的字符集
客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。
如果不一致,就得修改客户端的字符集,修改为同server端相同的字符集。
在这里我直接新增环境变量NLS_LANG,设置为AMERICAN_AMERICA.ZHS16GBK
---查询sql,中文已经不乱码了