① 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,中文已經不亂碼了