刚刚改好了 在这里说一下 (每个人的配置都不一样,解决方法可能也不一样 仅供参考)
1、将centos的编码改为gbk
vi /root/.bash_profile
export LC_ALL="zh_CN.GBK"
export LANG="zh_CN.GBK"
export LANG=en_US
2、在windows下远程访问hbase的存储时处理如下:
put.addColumn(Bytes.toBytes(colFamily), Bytes.toBytes(col), val.getBytes("GBK"));
val中就是存储的中文部分
3、在windows下读取的时候直接读取即可无需再次转换
这种方式目前可以实现在windwos下存储中文然后windows下读取中文,如果大家有好的解决方法或者这个方法有什么改进的地方希望大家指正,我对于编码这块不是很熟悉
附加代码检测字符串编码格式:
public static String getEncoding(String str) {
String encode = "GB2312";
try {
if (str.equals(new String(str.getBytes(encode), encode))) {
String s = encode;
return s;
}
} catch (Exception exception) {
}
encode = "ISO-8859-1";
try {
if (str.equals(new String(str.getBytes(encode), encode))) {
String s1 = encode;
return s1;
}
} catch (Exception exception1) {
}
encode = "UTF-8";
try {
if (str.equals(new String(str.getBytes(encode), encode))) {
String s2 = encode;
return s2;
}
} catch (Exception exception2) {
}
encode = "GBK";
try {
if (str.equals(new String(str.getBytes(encode), encode))) {
String s3 = encode;
return s3;
}
} catch (Exception exception3) {
}
return "";
}
|