亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

was中奇怪的生僻字亂碼案例

2024-06-28 16:04:46
字體:
來源:轉載
供稿:網友

問題描述

這個今天早上提供的一個生產問題。大體是說,改資料的時候,有個客戶的名字有生僻字,叫”劉”,保存之后就亂碼了,變成”劉?”

分析過程

亂碼需要確認數據傳輸過程中編碼方式。

數據是通過jQuery的Ajax過來的,并且沒有提前處理數據(只有組裝了一個js對象),所以是采用encodeURIComponent進行處理的,對于中文可以很粗糙的理解成UTF-8編碼過。這一點通過抓包工具是可以確認的。到了服務端之后會通過getParameter獲取參數,由于帶charsetEncoding的過濾器,并且是采用UTF-8的,那么這里拿到的字符串應該也是不會亂碼的。

到了這里,代碼并沒有特別之處。按我的理解,只要字符集能夠支持這個生僻字,就不會出現亂碼。 難道保存到數據庫的時候亂碼了? 目前數據庫是用GBK的,我去查了一下GBK的字符表,的確是有這么個字的。

我在本機上測了一下這個字的各種功能編碼轉換,都是正常的。 難道又是IBM的坑? 后來我又在服務器上測試了各種情況的輸出,發現有另外一個字”?”,除了字體大小有點不一樣之外,幾乎一模一樣的。

下面整理了一個簡單的測試程序,來說明這個奇怪的問題。

測試結果

首先要說明的是,這里有2個字,一小一大,還有它們對應的unicode和utf-8編碼。 測試結果是采用secureCRT的GB18030編碼顯示。

有兩個字: 小 大unicode /uE863 /u4dae瀏覽器(utf-8) %EE%A1%A3 %E4%B6%AE

下面的測試代碼,為了編譯時不關心字符集,所以換成utf-8字節來生成字符串。

public class Test { public static void main(String[] args) throws java.io.UnsupportedEncodingException { new Test().test(); } public void test() throws java.io.UnsupportedEncodingException { byte[] bbs = {-18,-95,-93,-28,-74,-82}; String x = new String(bbs, "utf-8"); String utf8 = new String(x.getBytes("utf-8"), "iso-8859-1"); //byte[] bs = utf8.getBytes("iso-8859-1"); //test case 1 //byte[] bs = x.getBytes("GBK"); //test case 2 for(byte b : bs){ System.out.PRintln(b); } System.out.println(x); }}

對于Test Case 1, 測試一下字符串是不是本來就亂了。測試結果顯示,2個字都正常,要輸出成GB18030才是可以的(secureCRT設置GB18030編碼)。

>/tools/jdk1.6.0_20/bin/java -Dfile.encoding=GBK Test-18-95-93-28-74-82??>/opt/IBM/WebSphere/AppServer/java/bin/java -Dfile.encoding=GBK Test-18-95-93-28-74-82??>/opt/IBM/WebSphere/AppServer/java/bin/java -Dfile.encoding=GB18030 Test-18-95-93-28-74-82?>/tools/jdk1.6.0_20/bin/java -Dfile.encoding=GB18030 Test-18-95-93-28-74-82?

對于Test Case 2,主要測試一下轉換成GBK字節的情況,因為這是保存到數據庫的必要轉換。 測試結果顯示,ibm的jdk下,第一個字會編程亂碼(對應的是63)。

>/tools/jdk1.6.0_20/bin/java -Ddefault.client.encoding=GBK -Dfile.encoding=GBK Test-2-9763?>/opt/IBM/WebSphere/AppServer/java/bin/java -Ddefault.client.encoding=GBK -Dfile.encoding=GBK Test63-2-97?

現象總結

在GBK字符表中,第一個字是存在的,第二個字不存在。在GB18030中兩個都存在。從顯示上,也證明了GBK和GB18030并不完全兼容。IBM的jdk為找不到第一個字,但能找到第二個字。Oracle的jdk剛好相反。嘗試使用百度拼音輸入的時候,是可以找到2個字的。如下圖的第2和第6個字。客戶需要的是小的字(第一個),但使用IBM的jdk轉換GBK是找不到這個字的,一定會亂碼。假設從前臺輸入的是第二個字,IBM的jdk應該是可以正常轉換并得到的”正確”的字(正確的小字),從而保證數據庫不亂碼。

yan

規避方法,選擇輸入第二個字(大字,截圖中的第二個字,應該看不出有什么區別)。話說回來,感覺這是ibm的jdk的bug,字符對應錯了。

相關資料

各種字符集編碼表GBK編碼表
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品成人播放| 7777免费精品视频| 最近2019中文字幕在线高清| 久久久久久成人精品| 国产精品一区电影| 亚洲a级在线播放观看| 26uuu亚洲国产精品| 欧美一级高清免费| 久久久精品999| 欧美日韩美女视频| 欧美电影在线免费观看网站| 中文字幕在线看视频国产欧美| 成人午夜在线视频一区| 国产精品成人av性教育| 国产一区二区三区在线观看网站| 亚洲成年人在线播放| 日韩精品在线视频美女| 亚洲精品久久久一区二区三区| 久久国产精品亚洲| 精品亚洲va在线va天堂资源站| 亚洲国产免费av| 亚洲欧美日韩天堂一区二区| 日韩精品黄色网| 国产精品视频一区国模私拍| 91麻豆国产语对白在线观看| 亚洲精品成a人在线观看| 日韩黄色在线免费观看| 亚洲毛片在线观看.| 欧美日韩第一视频| 91香蕉电影院| 亚洲丝袜在线视频| 国产伦精品一区二区三区精品视频| 亚洲色图50p| 91九色国产视频| 欧美性xxxxxx| 国产91精品最新在线播放| 亚洲第一视频网站| 日韩在线视频观看正片免费网站| 欧美一级高清免费| 日韩av在线直播| 亚洲人av在线影院| 中文字幕日韩欧美精品在线观看| 欧美巨大黑人极品精男| 最近2019年好看中文字幕视频| 国模精品一区二区三区色天香| 日韩在线视频免费观看| 欧美老肥婆性猛交视频| 超碰91人人草人人干| 国产美女精品免费电影| 国产日韩欧美中文| 一区二区三欧美| 精品久久久久久久久久国产| 久久久视频在线| 亚洲www视频| 国产精品直播网红| 欧美xxxx做受欧美.88| 国产69精品久久久久9| 欧美xxxx做受欧美.88| 亚洲精品福利视频| 琪琪第一精品导航| 日韩电影在线观看免费| 国产欧美欧洲在线观看| 色综合男人天堂| 欧美极品少妇xxxxx| 色综合久久精品亚洲国产| 亚州av一区二区| 久久久久久亚洲精品不卡| 91成人在线视频| 欧美大学生性色视频| 欧美电影免费观看高清| 日韩欧美综合在线视频| 色婷婷久久一区二区| 亚洲欧美第一页| 成人免费网站在线| 精品国偷自产在线| 亚洲免费福利视频| 久久中文精品视频| 精品国产91久久久久久| 久久亚洲国产精品| 在线亚洲欧美视频| 久久精品免费播放| 国产激情视频一区| 国产精品免费视频久久久| 国语自产精品视频在线看抢先版图片| 亚洲国产精久久久久久久| 欧美www视频在线观看| 亚洲变态欧美另类捆绑| 成人97在线观看视频| 一本色道久久88亚洲综合88| 欧美日韩另类视频| 亚洲欧美综合v| 亚洲色图狂野欧美| 97精品国产97久久久久久春色| 中文字幕精品久久久久| 中文字幕亚洲精品| 欧美成年人视频网站欧美| 亚洲精品视频中文字幕| 久久久精品一区二区三区| 26uuu日韩精品一区二区| 美女扒开尿口让男人操亚洲视频网站| 成人久久18免费网站图片| 国产成人精品999| 欧美激情视频在线观看| 国产97在线播放| 欧美黑人性视频| 欧美激情区在线播放| 国产区亚洲区欧美区| 欧美肥婆姓交大片| 欧美精品在线网站| 国产精品成熟老女人| 欧美国产在线视频| 国产精品久久77777| 国产午夜精品免费一区二区三区| 亚洲精品日韩av| 亚洲国产精品国自产拍av秋霞| 亚洲精品日韩在线| 亚洲精品久久久久久久久久久久久| 日韩美女视频免费在线观看| 亚洲国产日韩欧美在线99| 亚洲韩国青草视频| 亚洲国产美女久久久久| 国产精品视频yy9099| 亚洲福利在线观看| 国产精品视频不卡| 久久免费视频观看| 久久精品视频99| 欧美专区在线播放| 欧美午夜影院在线视频| 亚洲一区二区三区在线视频| 亚洲电影免费在线观看| 国产精品免费视频久久久| 亚洲精品资源美女情侣酒店| 国产精品视频999| 91国产精品视频在线| 国产精品视频yy9099| 欧美富婆性猛交| 久久影视三级福利片| 色哟哟网站入口亚洲精品| 成人国产在线视频| 欧美老女人bb| 国产精品成人久久久久| 亚洲最大成人免费视频| 国产国产精品人在线视| 国产精品私拍pans大尺度在线| 国产福利精品av综合导导航| 欧美精品一区二区三区国产精品| 国产美女扒开尿口久久久| 亚洲国产欧美一区二区丝袜黑人| 欧美大片免费观看在线观看网站推荐| 国内精品久久久久久久| 国产欧美一区二区白浆黑人| 日韩精品在线免费观看视频| 69久久夜色精品国产7777| 国产在线98福利播放视频| 色综合色综合久久综合频道88| 57pao国产成人免费| 日韩中文娱乐网| 久久人人爽人人爽人人片av高请| 成人写真视频福利网| 欧美午夜精品久久久久久久| 欧美精品在线播放| 性色av一区二区三区免费| 亚洲欧美在线一区二区| 国产精品高潮视频|