GBK到Unicode的互转(Java版)
来源:互联网 发布:2017年最火的网络歌手 编辑:程序博客网 时间:2024/06/09 23:46
Java开发中,经常遇到从GBK到Unicode码的转换;大家经常做的做法,大概有2种,一种是:native2ascii;只要保存好文件,每次编辑好文件,然后使用该命令转换即可;
另外一种是:Eclipse的插件Properties Editor; 用法不错,自动编辑;但缺点是必须使用Eclipse;
为了开发方便UE+Java,决定在UE中配置Properties转换;实现快速的转换(逆转);
Java版本转换;
由于Java本身的特点,Unicode与各种编码之间的转换最简便;
用法:Java PropertiesTranslater “转换字符串”
Java PropertiesTranslater –reverse “字符串”
1. 在工具栏添加工具配置:
2. 配置工具如下图;注意参数为%sel%,也可参照UE文档配置;
3. 点击高级,进行选中的替换
4. 配置完成。以下即可在UE中,对选中的文本,然后按相应的工具快捷键;
即可对选中的文本,进行转换为Unicode。
如果要进行逆向转换,只需按照上述方法,在此添加工具栏,命令行参数添加
“-reverse”参数即可;
/***********************************示例代码*********************************/
/**
*
* PropertiesTranslater
*/
public class PropertiesTranslater{
public static void main(String[] args){
if(args ==null || args[0]==null){
System.out.println("__错误参数配置__");
return;
}
if(args.length==2 && args[1]!=null && "-reverse".equals(args[1])){
String result = PropertiesTranslater.Unicode2GBK(args[0]);
System.out.print(result);
}else{
String result = PropertiesTranslater.GBK2Unicode(args[0]);
System.out.print(result);
}
}
/**
* 中文转unicode
* @param str
* @return 反回unicode编码
*/
public static String GBK2Unicode(String str){
StringBuffer result = new StringBuffer();
for (int i = 0; i < str.length(); i++){
char chr1 = (char)str.charAt(i);
if(!PropertiesTranslater.isNeedConvert(chr1)){
result.append(chr1);
continue;
}
result.append("//u" + Integer.toHexString((int)chr1));
}
return result.toString();
}
/**
* unicode转中文
* @param str
* @return 中文
*/
public static String Unicode2GBK(String dataStr) {
int index = 0;
StringBuffer buffer = new StringBuffer();
while(index<dataStr.length()) {
if(!"//u".equals(dataStr.substring(index,index+2))){
buffer.append(dataStr.charAt(index));
index++;
continue;
}
String charStr = "";
charStr = dataStr.substring(index+2,index+6);
char letter = (char) Integer.parseInt(charStr, 16 );
buffer.append(letter);
index+=6;
}
return buffer.toString();
}
public static boolean isNeedConvert(char para){
return ((para&(0x00FF))!=para);
}
}
/***********************************示例代码*********************************/
参考文章:
中文编码转换为代码Unicode编码,看看
http://topic.csdn.net/t/20040103/18/2629949.html
如何把Unicode编码转换成GB码,我需要代码,有的进
http://blog.csdn.net/thisisll/archive/
谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词
http://dev.csdn.net/develop/article/69/69883.shtm
对UTF8编码的初步认识!
http://dev.csdn.net/develop/article/72/72888.shtm
UTF,UCS, 其他编码的转换
http://blog.csdn.net/thisisll/archive/
mbstowcs方法问题;
http://www.softwelt.com/Know/KnowDetail.aspx?Qid=547284
GBK到Unicode的转换(Java版本,C版本,Python版本)
- GBK到Unicode的互转(Java版)
- unicode转gbk,gbk转unicode CC++
- GBK转unicode
- java的字符编码集(UNICODE,utf-8,gbk等)
- java 之字符集的种种 unicode gbk utf8 utf-16
- GB2312,GBK,Unicode的理解
- NSString 到 unicode asic utf-8 gbk
- UTF8 转 UNICODE GBK ANSI
- [转]Unicode、GBK、UTF-8、ASCII的…
- GBK转unicode码查询表的改进
- 将GBK的简体转换到GBK繁体(转)
- GBK,Unicode,UTF-8格式互转(转)
- UNICODE GBK UTF-8 编码互转(VC++)
- UNICODE GBK UTF-8 编码互转(VC++)
- GBK/Unicode
- java字符编码问题:常用的GBK与Unicode汉字编码在JAVA是怎样规定的?
- php的汉字转换: GBK->Unicode(UTF8)
- php的汉字转换: Unicode(UTF8)->GBK
- Visual C++线程同步技术剖析
- Fedora 9下视频播放可用方法
- FreeBSD 和 Linux 服务器的比较
- 即将开始的Ext之旅
- 如何学习
- GBK到Unicode的互转(Java版)
- 即时战略游戏中如何协调对象移动(转帖)
- 上海高考分数线揭晓,文科471分理科467分
- 高考录取分数线划定
- 广东高考放榜划分数线,广州又无总分状元
- 广东高考成绩及录取分数线揭晓
- 海南2008年本科提前批填报志愿资格分数线
- 甘肃高考第一二批最低录取分数线出炉
- 北京师范大学08年山东省录取分数线及录取原则