A. 如何判斷字元串中含有日文字元
最近做的東西有這么一個需要:判斷一個字元串中是否含有日文字元。最直觀的想法就是使用正則表達式,因此上網一搜,找到了這個 utf-8 對應的日文字元列表:http://ash.jp/code/unitbl21.htm 。滿心歡喜,按照列表,用utf-16指定的區間,再用正則表達式方式寫了一個判斷方法。
測試了幾個單詞,正確。不過測試了幾個漢字,發現不對。
仔細看了看那個表,發現 字母和假名部分,utf-16是連續的,但是漢字和特殊字元部分,就不是連續的了。這就是用正則表達式也得累死人!
再看看那個表,SJIS 編碼的code是連續的,恩,可以使用區間,所以字元串得轉換一下:
str=newString(str.getBytes(),"UTF-8");
byte[]bt=str.getBytes("SHIFT-JIS");
不過那個表也真大阿!!就算用 shift-jis編碼,正則表達式也不短!
在輸出 byte[] 的時候,發現如果是中文的話,那麼 byte[] 的長度會小於4,而且不會被2 整除。於是乎,方法來了:
Java代碼
returnbt.length%2==0;
這個方法可以判斷一個字元是否為日文字元,那麼判斷字元串中是否包含日文字元也不難了。
以下是測試類:
Java代碼
assertTrue(CharacterUtil.isContainJapaneseCharacter("亜亜"));
assertTrue(CharacterUtil.isContainJapaneseCharacter("お早う"));
assertTrue(CharacterUtil.isContainJapaneseCharacter("學校"));
assertTrue(CharacterUtil.isContainJapaneseCharacter("お早う,tom!"));
assertFalse(CharacterUtil.isContainJapaneseCharacter("嚴"));
assertFalse(CharacterUtil.isContainJapaneseCharacter("tom"));
try{
InputStreamis=getClass().getClassLoader().getResourceAsStream("util/CharacterTest.utf_8");
LineNumberReaderln=newLineNumberReader(newInputStreamReader(is,"UTF-8"));
//漢字足
assertTrue(CharacterUtil.isContainJapaneseCharacter(ln.readLine()));
//あし足
assertTrue(CharacterUtil.isContainJapaneseCharacter(ln.readLine()));
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
其中比較特殊的是 「足」之類的文字,在 UNICODE 列表中,中日韓有幾部分是公用一些漢字的。(CharacterTest.utf_8 是一個 utf-8 編碼的文本文件,裡面分別用漢字和日文寫了「足」這個字 )。
B. java 如何設置文件流的編碼格式代碼如下, 我設置後還是SJIS格式的.我想問下怎麼改能設置成utf-8
OutputStreamWriter里指定charset應該就是這個用法,你確定List<JobBean>里的那些字元串都是正確的?你可以先作一個單元版測試,自己在本地生成一些權正確的JobBean,以保證問題不出在其他地方。
C. MySQL中資料庫的默認字元集和校對規則有哪些
灰常多,請耐心查看。
字元集Start-----------------------
Charset Description Default collation
big5 Big5 Traditional Chinese big5_chinese_ci
dec8 DEC West European dec8_swedish_ci
cp850 DOS West European cp850_general_ci
hp8 HP West European hp8_english_ci
koi8r KOI8-R Relcom Russian koi8r_general_ci
latin1 cp1252 West European latin1_swedish_ci
latin2 ISO 8859-2 Central European latin2_general_ci
swe7 7bit Swedish swe7_swedish_ci
ascii US ASCII ascii_general_ci
ujis EUC-JP Japanese ujis_japanese_ci
sjis Shift-JIS Japanese sjis_japanese_ci
hebrew ISO 8859-8 Hebrew hebrew_general_ci
tis620 TIS620 Thai tis620_thai_ci
euckr EUC-KR Korean euckr_korean_ci
koi8u KOI8-U Ukrainian koi8u_general_ci
gb2312 GB2312 Simplified Chinese gb2312_chinese_ci
greek ISO 8859-7 Greek greek_general_ci
cp1250 Windows Central European cp1250_general_ci
gbk GBK Simplified Chinese gbk_chinese_ci
latin5 ISO 8859-9 Turkish latin5_turkish_ci
armscii8 ARMSCII-8 Armenian armscii8_general_ci
utf8 UTF-8 Unicode utf8_general_ci
ucs2 UCS-2 Unicode ucs2_general_ci
cp866 DOS Russian cp866_general_ci
keybcs2 DOS Kamenicky Czech-Slovak keybcs2_general_ci
macce Mac Central European macce_general_ci
macroman Mac West European macroman_general_ci
cp852 DOS Central European cp852_general_ci
latin7 ISO 8859-13 Baltic latin7_general_ci
cp1251 Windows Cyrillic cp1251_general_ci
cp1256 Windows Arabic cp1256_general_ci
cp1257 Windows Baltic cp1257_general_ci
binary Binary pseudo charset binary
geostd8 GEOSTD8 Georgian geostd8_general_ci
cp932 SJIS for Windows Japanese cp932_japanese_ci
eucjpms UJIS for Windows Japanese eucjpms_japanese_ci
字元集End-----------------------
字元集--校驗 關系Start------------------
Collation Charset Default
big5_chinese_ci big5 Yes
big5_bin big5
dec8_swedish_ci dec8 Yes
dec8_bin dec8
cp850_general_ci cp850 Yes
cp850_bin cp850
hp8_english_ci hp8 Yes
hp8_bin hp8
koi8r_general_ci koi8r Yes
koi8r_bin koi8r
latin1_german1_ci latin1
latin1_swedish_ci latin1 Yes
latin1_danish_ci latin1
latin1_german2_ci latin1
latin1_bin latin1
latin1_general_ci latin1
latin1_general_cs latin1
latin1_spanish_ci latin1
latin2_czech_cs latin2
latin2_general_ci latin2 Yes
latin2_hungarian_ci latin2
latin2_croatian_ci latin2
latin2_bin latin2
swe7_swedish_ci swe7 Yes
swe7_bin swe7
ascii_general_ci ascii Yes
ascii_bin ascii
ujis_japanese_ci ujis Yes
ujis_bin ujis
sjis_japanese_ci sjis Yes
sjis_bin sjis
hebrew_general_ci hebrew Yes
hebrew_bin hebrew
tis620_thai_ci tis620 Yes
tis620_bin tis620
euckr_korean_ci euckr Yes
euckr_bin euckr
koi8u_general_ci koi8u Yes
koi8u_bin koi8u
gb2312_chinese_ci gb2312 Yes
gb2312_bin gb2312
greek_general_ci greek Yes
greek_bin greek
cp1250_general_ci cp1250 Yes
cp1250_czech_cs cp1250
cp1250_croatian_ci cp1250
cp1250_bin cp1250
cp1250_polish_ci cp1250
gbk_chinese_ci gbk Yes
gbk_bin gbk
latin5_turkish_ci latin5 Yes
latin5_bin latin5
armscii8_general_ci armscii8 Yes
armscii8_bin armscii8
utf8_general_ci utf8 Yes
utf8_bin utf8
utf8_unicode_ci utf8
utf8_icelandic_ci utf8
utf8_latvian_ci utf8
utf8_romanian_ci utf8
utf8_slovenian_ci utf8
utf8_polish_ci utf8
utf8_estonian_ci utf8
utf8_spanish_ci utf8
utf8_swedish_ci utf8
utf8_turkish_ci utf8
utf8_czech_ci utf8
utf8_danish_ci utf8
utf8_lithuanian_ci utf8
utf8_slovak_ci utf8
utf8_spanish2_ci utf8
utf8_roman_ci utf8
utf8_persian_ci utf8
utf8_esperanto_ci utf8
utf8_hungarian_ci utf8
ucs2_general_ci ucs2 Yes
ucs2_bin ucs2
ucs2_unicode_ci ucs2
ucs2_icelandic_ci ucs2
ucs2_latvian_ci ucs2
ucs2_romanian_ci ucs2
ucs2_slovenian_ci ucs2
ucs2_polish_ci ucs2
ucs2_estonian_ci ucs2
ucs2_spanish_ci ucs2
ucs2_swedish_ci ucs2
ucs2_turkish_ci ucs2
ucs2_czech_ci ucs2
ucs2_danish_ci ucs2
ucs2_lithuanian_ci ucs2
ucs2_slovak_ci ucs2
ucs2_spanish2_ci ucs2
ucs2_roman_ci ucs2
ucs2_persian_ci ucs2
ucs2_esperanto_ci ucs2
ucs2_hungarian_ci ucs2
cp866_general_ci cp866 Yes
cp866_bin cp866
keybcs2_general_ci keybcs2 Yes
keybcs2_bin keybcs2
macce_general_ci macce Yes
macce_bin macce
macroman_general_ci macroman Yes
macroman_bin macroman
cp852_general_ci cp852 Yes
cp852_bin cp852
latin7_estonian_cs latin7
latin7_general_ci latin7 Yes
latin7_general_cs latin7
latin7_bin latin7
cp1251_bulgarian_ci cp1251
cp1251_ukrainian_ci cp1251
cp1251_bin cp1251
cp1251_general_ci cp1251 Yes
cp1251_general_cs cp1251
cp1256_general_ci cp1256 Yes
cp1256_bin cp1256
cp1257_lithuanian_ci cp1257
cp1257_bin cp1257
cp1257_general_ci cp1257 Yes
binary binary Yes
geostd8_general_ci geostd8 Yes
geostd8_bin geostd8
cp932_japanese_ci cp932 Yes
cp932_bin cp932
eucjpms_japanese_ci eucjpms Yes
eucjpms_bin eucjpms
字元集--校驗 關系END------------------
========================
如果你可以訪問MYSQL的話。教你兩個語句。直接查出來看。格式比這個好看。
SHOW CHARACTER SET
SHOW COLLATION
如果需要。我有電子表格。
給我發郵件索要。[email protected]。
Over!
D. 關於「任意編碼」的txt格式的文本文檔「批量轉換」為同一種編碼的文本文件,要能自動識別源編碼(200分)
飛梭TXT文本文件轉碼工具支持10種常見文件編碼,具有文件編碼自動識別功能。在網上搜飛梭TXT文本數據處理百寶箱,直接下載就可以了
E. 網頁出現亂碼怎麼辦
首先
查看--編碼--簡體中文.看行不行.網頁亂碼是瀏覽器(如IE等)對HTML網頁解釋時形成的。如果在網頁的代碼中有形如:〈HTML〉〈HEAD〉〈META
CONTENT=「text/html;charset=ISO-8859-1」〉〈/HEAD〉……〈/HTML〉的語句,瀏覽器在顯示此頁時,就會出現亂碼。因為瀏覽器會將此頁語種辨認為「歐洲語系」。解決的辦法是將語種「ISO-8859-1」改為GB2312,如果是繁體網頁則改為BIG5。
另一種解決辦法是不修改網頁代碼,事先為瀏覽器安裝多語言支持包(例如在安裝IE時要安裝多語言支持包),這樣在瀏覽網頁出現亂碼時,就可以在瀏覽器中選擇菜單欄下的「查看」/「編碼」/「自動選擇」/簡體中文(GB2312),如為繁體中文則選擇「查看」/「編碼」/「自動選擇」/繁體中文(BIG5),其它語言依此類推選擇相應的語系,這樣可消除網頁亂碼現象。
還有一種解決辦法是利用多內碼顯示平台來轉換內碼。常用多內碼顯示平台有:
「南極星」:可自動識別GB碼、BIG5碼,用簡體或繁體顯示,並能做到同屏顯示GB碼和BIG5碼,對日文、韓文亦能正確顯示。下載地址:
http://
www.njstar.com
「四通利方」:支持了包括GB、BIG5、HZ、日韓編碼、UNICOD等17種漢字內碼,也開始支持預覽功能,並且增加了諸如「增刪空格」、「插入禁排空格」等小而有用的功能,實在是網友的好幫手。下載地址:
http://
www.srsnet.com
「MagicWin
98」:可真正的同屏顯示不同內碼,即GB碼和BIG5碼兩者共存、都能正常顯示。它支持GB、HZ、BIG5、JIS、EUC、SJIS、KSC、UTF7和UTF8等格式;支持Netscape
Communicator
4.X、Internet
Explorer
和Office
等軟體;支持在多個窗口中同時查看不同內碼的文檔的超級多內碼顯示平台。下載地址:
http://
www.itwin.com.my/magicwin
網頁無亂碼保存的方法是:用瀏覽器打開網頁時,在「查看」/「編碼」中選擇「自動選擇」,存檔時保存類型選「web頁」,編碼選擇「UNICOD」,這樣保存過的網頁再次打開時,在瀏覽器菜單「查看」、「編碼」中不管選擇簡體中文(GB2312)、簡體中文(HZ)還是UNICODE(UTF-8)或繁體中文(BIG5),最終顯示都不會出現亂碼。
http://hi..com/audreylynn/blog/item/5b0f1c304bbcb599a9018eb4.html
這個網站會有多國語言包下載,請試試eMule資源
再不行的話,你試試控制面板-INTERNET選項-常規-語言(右下角)-添加(日語[ja])