java資料庫亂碼
MySQL中默認字元集的設置有四級:伺服器級,資料庫級,表級
。最終是欄位級
的字元集設置。注意前三種均為默認設置,並不代碼你的欄位最終會使用這個字元集設置。所以我們建議要用show
create
table
table
;
或show
full
fields
from
tableName;
來檢查當前表中欄位的字元集設置。
MySQL中關於連接環境的字元集設置有
Client端,connection,
results
通過這些參數,MySQL就知道你的客戶端工具用的是什麼字元集,結果集應該是什麼字元集。這樣MySQL就會做必要的翻譯,一旦這些參數有誤,自然會導致字元串在轉輸過程中的轉換錯誤。基本上99%的亂碼由些造成。
上面是我抄網上的資料來的。我試了一下。發現
mysql>
show
variables
like
'char%';
+--------------------------+----------------------------+
|
Variable_name
|
Value
|
+--------------------------+----------------------------+
|
character_set_client
|
latin1
|
|
character_set_connection
|
latin1
|
|
character_set_database
|
latin1
|
|
character_set_filesystem
|
binary
|
|
character_set_results
|
latin1
|
|
character_set_server
|
latin1
|
|
character_set_system
|
utf8
|
|
character_sets_dir
|
/usr/share/mysql/charsets/
|
+--------------------------+----------------------------+
8
rows
in
set
(0.00
sec)
解決方法已經找到。進入數據後
use
資料庫名;
names
utf8;
不過這樣會每次進入都必須重新設置。因此。還可以在/etc/mysql/my.conf里添加
[mysql]
#no-auto-rehash
#
faster
start
of
mysql
but
no
tab
completition
default-character-set=utf8
這樣資料庫就不每次按照utf8字元集來導入到資料庫了
② java 修改資料庫內容時中文亂碼
java使用中文用的的是unicode,不是udf8,你僅是將網頁和資料庫編碼設置為udf8是沒有用的
本來用udf8表示中文就是一堆亂碼的,
取出顯示時需要重新轉換。
③ 使用純Java方式連接資料庫,添加一條數據 亂碼怎麼解決
字元集要設置對,如果你設置資料庫的字元集是UTF-8,那麼你就要把你inset那個欄位的編碼格式改為utf-8
String str = "要插入的值";
try {
String str_u8 = new String(str.getBytes(),"utf-8");
//拼sql的時候把str_u8拼進去
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
如果資料庫是GBK的格式編碼,把UTF-8換成GBK就行了。
④ 用java讀取txt文件中的中文寫入資料庫出現中文亂碼,怎麼解決
"1,設置下你資料庫的編碼,一般設置成UTF-8或GBK或GB2312
2,java讀取TXT數據時可以轉換下編碼,再存進資料庫,從資料庫讀取出來後顯示時也同樣的轉換下編碼,貌似可以用個過濾器來弄的,"
⑤ java 連接 mysql 資料庫亂碼問題
是java前台的編碼和資料庫編碼不同,將java獲得的信息先轉換成gb2312在插入,查詢時,先轉換成gb2312再處理
⑥ java Swing 向資料庫傳參數出現亂碼怎麼辦
格式化參數。校對資料庫與代碼的字元集編碼。
⑦ java 向資料庫寫入漢字的時候出現亂碼
可能原因一:資料庫不支持中文,或者是資料庫編碼格式和java代碼編碼格式不一致,這種情況需要修改資料庫編碼格式:
;改完編碼後執行
sql>conn/assysdba;
sql>shutdownimmediate;
databaseclosed.
databasedismounted.
oracleinstanceshutdown.
sql>startupmount;
oracleinstancestarted.
fixedsize452044bytes
variablesize109051904bytes
databasebuffers25165824bytes
redobuffers667648bytes
databasemounted.
sql>;
systemaltered.
sql>altersystemsetjob_queue_processes=0;
systemaltered.
sql>altersystemsetaq_tm_processes=0;
systemaltered.
sql>alterdatabaseopen;
databasealtered.
sql>_useUTF-8;
sql>shutdownimmediate;
sql>startup;
可能原因二:java代碼生成插入語句的時候,已經發生亂碼現象,這種只能是修改項目編碼格式或者是在數據獲取的時候直接轉譯代碼編碼格式來實現了。
⑧ java讀取oracle資料庫裡面的數據生成xml文件,生成的xml文件出現亂碼怎麼解決
跟蹤問題所在:
1、查詢一下資料庫,判斷在資料庫中的時候,是否是已經存在了亂碼。
2、在讀取到Java的時候,你用SystemOut輸出一下,判斷這個時候,是否是亂碼。
3、寫入到xml文件的時候,XML中是否是亂碼。
如果是1種情況出現亂碼,則是寫入資料庫的時候出現亂碼,需要更改寫入程序的代碼。
如果是2種情況出現亂碼,則是讀取Oracle的字元集出現錯誤,設置讀取的字元集。
如果是3種情況出現亂碼,則是在Java類中寫入的時候,設置字元集,查看資料庫字元集,設置為UTF-8、或者是GBK字元集。
希望對你有幫助。