"中文乱码".getBytes("GBK").toString()
解决方案 »
- 请教org.springframework.web.context.ContextLoaderListener配置struts2和spring以及路径关系
- iframe是什么东西?
- 在JAVA中有没有改变显示器分辨率的技术,请高手们指教,能不能给发点代码?
- 如何动态创建所需要的类??和相应的属性?
- 请问JAVA中出现的这个异常如何解决。
- java中怎样识别当前操作系统?
- 初学:定义一个简单的类出现的问题,欢迎讨论。
- 找指导了!!!!
- 关于MD5加密的问题`(在线等待,立刻给分,急急急~~~)
- 如何升级win2000自带的java包?(高手请进)
- 内存问题
- 在IE中java Web start启动jnlp文件,老是启动不了我的jar应用,在jrun中如何配置mime文件类型?
不行,出来乱码
与下面对应
\u6c5f\u8607\u821c\u5929\u80a1\u4efd\u6709\u9650\u516c\u53f8
27743=0x6c5f
34311=0x8607
......C:\Documents and Settings\Admin>native2ascii -reverse
\u6c5f\u8607\u821c\u5929\u80a1\u4efd\u6709\u9650\u516c\u53f8 (回车)
江蘇舜天股份有限公司C:\Documents and Settings\Admin>native2ascii
江蘇舜天股份有限公司 (回车)
\u6c5f\u8607\u821c\u5929\u80a1\u4efd\u6709\u9650\u516c\u53f8
import java.io.*;public class Convert
{
public static String toGB(String original) throws IOException
{
StringBuffer converted = new StringBuffer();
Pattern pattern = Pattern.compile("&#\\d+;"); //正则表达式匹配&#?;
Matcher matcher = pattern.matcher(original);
int lastEnd = 0; //上一次匹配的结束位置
while (matcher.find()) //找一下个匹配串
{
if (lastEnd != matcher.start()) //写正常英文字符
{
converted.append(original.substring(lastEnd, matcher.start()));
}
String oneByte = matcher.group();
oneByte = oneByte.substring(2, oneByte.length() - 1); //取出&#?;中的?
int data = Integer.parseInt(oneByte);
converted.append((char)data);
lastEnd = matcher.end();
}
if (lastEnd < original.length()) //写剩下的正常英文字符
{
converted.append(original.substring(lastEnd));
}
return converted.toString();
}
public static void main(String[] args) throws IOException
{
String originalA = "江蘇舜天股"
+ "份有限公司";
String originalB = "&#China#&江蘇Hello, 舜天股"
+ "份World!;有限#公;司#PRC&;#";
String convertedA = Convert.toGB(originalA);
String convertedB = Convert.toGB(originalB);
System.out.println(convertedA);
System.out.println(convertedB);
}
}输出为:
江蘇舜天股份有限公司
&#China#&江蘇Hello, 舜天股份World!;有限#公;司#PRC&;#
Press any key to continue...两组测试数据均正确。
程式终于搞定了 谢谢