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])