<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    小明思考

    Just a software engineer
    posts - 124, comments - 36, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    詭異的mysql latin1編碼

    Posted on 2012-02-24 14:54 小明 閱讀(1532) 評論(0)  編輯  收藏 所屬分類: 開發日志

    Mysql 的latin1 不等于標準的latin1(iso-8859-1) 和cp1252,比iso-8859-1多了0x80-0x9f字符,比cp1252多了0x81,0x8d,0x8f,0x90,0x9d 一共5個字符。

     

    http://dev.mysql.com/doc/refman/5.0/en/charset-we-sets.html

    latin1 is the default character set. MySQL's latin1 is the same as the Windows cp1252 character set. This means it is the same as the official ISO 8859-1 or IANA (Internet Assigned Numbers Authority) latin1, except that IANA latin1 treats the code points between 0x80 and 0x9f as “undefined,” whereas cp1252, and therefore MySQL's latin1, assign characters for those positions. For example, 0x80 is the Euro sign. For the “undefined” entries in cp1252, MySQL translates 0x81 to Unicode 0x0081, 0x8d to 0x008d, 0x8f to 0x008f, 0x90 to 0x0090, and 0x9d to 0x009d.

    這樣在Java中,如果使用標準的iso-8859-1或者cp1252解碼可能出現亂碼。
    s.getBytes("iso-8859-1") 或者 s.getBytes("cp1252");

    寫了一段代碼來解決這個問題
    private String convertCharset(String s){
            
    if(s!=null){
                
    try {
                    
    int length = s.length();
                    
    byte[] buffer = new byte[length];
                    
    //0x81 to Unicode 0x0081, 0x8d to 0x008d, 0x8f to 0x008f, 0x90 to 0x0090, and 0x9d to 0x009d.
                    for(int i=0;i<length;++i){
                        
    char c = s.charAt(i);
                        
    if(c==0x0081){
                            buffer[i]
    =(byte)0x81;
                        }
                        
    else if(c==0x008d){
                            buffer[i]
    =(byte)0x8d;
                        }
                        
    else if(c==0x008f){
                            buffer[i]
    =(byte)0x8f;
                        }
                        
    else if(c==0x0090){
                            buffer[i]
    =(byte)0x90;
                        }
                        
    else if(c==0x009d){
                            buffer[i]
    =(byte)0x9d;
                        }
                        
    else{
                            buffer[i] 
    = Character.toString(c).getBytes("cp1252")[0];
                        }
                    }
                    String result 
    = new String(buffer,"utf-8");
                    
    return result;
                } 
    catch (UnsupportedEncodingException e) {
                    logger.error(
    "charset convert error", e);
                }
            }
            
    return null;
        }
    主站蜘蛛池模板: 亚洲电影免费在线观看| 亚洲暴爽av人人爽日日碰| 777亚洲精品乱码久久久久久| 亚洲视频网站在线观看| 日韩亚洲国产综合高清| 无码的免费不卡毛片视频| 成全视频高清免费观看电视剧 | 久久久久久国产a免费观看不卡| 男女作爱在线播放免费网站| 永久免费毛片在线播放| 亚洲中文字幕久久精品无码APP| 亚洲激情校园春色| 免费国产黄网站在线看| 免费观看无遮挡www的视频| 亚洲一级特黄大片在线观看| 亚洲一区精品视频在线| a毛片在线看片免费| 亚洲第一区精品观看| 亚洲综合在线一区二区三区| 国内精品一级毛片免费看| 一二三四视频在线观看中文版免费| 国产福利免费在线观看| 久久噜噜噜久久亚洲va久| 亚洲精品色在线网站| 99免费观看视频| JLZZJLZZ亚洲乱熟无码| 亚洲精品一二三区| 在线观看免费无码专区| 四虎影视在线永久免费看黄 | 亚洲a无码综合a国产av中文| 亚洲视频在线观看免费| 久久久久亚洲精品中文字幕| 亚洲最大无码中文字幕| 59pao成国产成视频永久免费 | 午夜视频免费在线观看| 哒哒哒免费视频观看在线www| 曰韩亚洲av人人夜夜澡人人爽| 亚洲av日韩精品久久久久久a| 久久福利青草精品资源站免费| 日韩亚洲精品福利| 久久精品熟女亚洲av麻豆|