牛骨文教育服务平台(让学习变的简单)
博文笔记

hbase乱码问题解决

创建时间:2016-12-07 投稿人: 浏览次数:3984

解决Eclipse发布到Tomcat丢失依赖jar包的问题


Build Path->Configure Build Path ->Deployment Assembly ->Add->java build path entries

另外一定要注意:使用HBase API时不要使用str.getBytes将String转化为byte[] ,而应该使用Bytes.toBytes(str);同样使用Bytes.toString(bytes);完成逆向转换。

package com.dbapp.util;


public class TranCharset {  

 

    private static final String PRE_FIX_UTF = "&#x";  

    private static final String POS_FIX_UTF = ";";  

  

    public TranCharset() {  

    }  

  

      

    public static String XmlFormalize(String sTemp) {  

        StringBuffer sb = new StringBuffer();  

  

        if (sTemp == null || sTemp.equals("")) {  

            return "";  

        }  

        String s = TranCharset.TranEncodeTOGB(sTemp);  

        for (int i = 0; i < s.length(); i++) {  

            char cChar = s.charAt(i);  

            if (TranCharset.isGB2312(cChar)) {  

                sb.append(PRE_FIX_UTF);  

                sb.append(Integer.toHexString(cChar));  

                sb.append(POS_FIX_UTF);  

            } else {  

                switch ((int) cChar) {  

                    case 32:  

                        sb.append("&#32;");  

                        break;  

                    case 34:  

                        sb.append("&quot;");  

                        break;  

                    case 38:  

                        sb.append("&amp;");  

                        break;  

                    case 60:  

                        sb.append("&lt;");  

                        break;  

                    case 62:  

                        sb.append("&gt;");  

                        break;  

                    default:  

                        sb.append(cChar);  

                }  

            }  

        }  

        return sb.toString();  

    }  

  

      

    public static String TranEncodeTOGB(String str) {  

        try {  

            String strEncode = TranCharset.getEncoding(str);  

            String temp = new String(str.getBytes(strEncode), "UTF-8");  

            return temp;  

        } catch (java.io.IOException ex) {  

  

            return null;  

        }  

    }  

  

      

    public static boolean isGB2312(char c) {  

        Character ch = new Character(c);  

        String sCh = ch.toString();  

        try {  

            byte[]   bb = sCh.getBytes("gb2312");  

            if (bb.length > 1) {  

                return true;  

            }  

        } catch (java.io.UnsupportedEncodingException ex) {  

            return false;  

        }  

        return false;  

    }  

  

      

    public static String getEncoding(String str) {  

        String encode = "GB2312";  

        try {  

            if (str.equals(new String(str.getBytes(encode), encode))) {  

                String s = encode;

                System.out.println("*******---------------encodeing:"+encode);

                return s;  

            }  

        } catch (Exception exception) {  

        }  

        encode = "ISO-8859-1";  

        try {  

            if (str.equals(new String(str.getBytes(encode), encode))) {  

                String s1 = encode;  

                System.out.println("*******---------------encodeing:"+encode);

                return s1;  

            }  

        } catch (Exception exception1) {  

        }  

        encode = "UTF-8";  

        try {  

            if (str.equals(new String(str.getBytes(encode), encode))) {  

                String s2 = encode;  

                System.out.println("*******---------------encodeing:"+encode);

                return s2;  

            }  

        } catch (Exception exception2) {  

        }  

        encode = "GBK";  

        try {  

            if (str.equals(new String(str.getBytes(encode), encode))) {  

                String s3 = encode;

                System.out.println("*******---------------encodeing:"+encode);

                return s3;  

            }  

        } catch (Exception exception3) {  

        }  

        System.out.println("*******---------------encodeing:"+encode);

        return "";  

    }  

}  



声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。