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
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/2005/09/01/469422.aspx
谈谈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/2005/09/01/469422.aspx
mbstowcs方法问题;
http://www.softwelt.com/Know/KnowDetail.aspx?Qid=547284