我试图解码FARSI中的字符串到UTF-8然后我检查浏览器本身将FARSI字符串转换为十进制NCR代码
如何将十进制NCR代码转换为UTF-8?
String farMsg = "??????"; String finalMsg = new String(farMsg.getBytes(),"UTF-8"); System.out.println("\n Farsi Message \n" + finalMsg);
当我尝试使用上面的代码转换它工作正常,但如果我从JSP
页面的输入框使用相同的字符串,它给我一些像这样的输出
عتباري
转换成相同内容需要做哪些修改.
编辑
我进入
??????
了jsp输入框并用于request.getParameter("faMSg")
获取值,我在这里得到عتباري
但是我应该得到??????
dbw.. 8
我创建了一个将DecimalNCR转换为的自定义函数String
.
public static String ConvertDecimalNCRToString(String hex) { String myString = hex.replace("", ""); String[] split = myString.split(";"); StringBuilder sb = new StringBuilder(); for (int i = 0; i < split.length; i++) { sb.append((char)Integer.parseInt(split[i])); } return sb.toString(); }
这会成功转换您提供的String
.
编辑我用中文测试了上面的函数???
,??????
并且波斯语(??????
和????? ??? ????
)字符提供了正确的结果.
我创建了一个将DecimalNCR转换为的自定义函数String
.
public static String ConvertDecimalNCRToString(String hex) { String myString = hex.replace("&#", ""); String[] split = myString.split(";"); StringBuilder sb = new StringBuilder(); for (int i = 0; i < split.length; i++) { sb.append((char)Integer.parseInt(split[i])); } return sb.toString(); }
这会成功转换您提供的String
.
编辑我用中文测试了上面的函数???
,??????
并且波斯语(??????
和????? ??? ????
)字符提供了正确的结果.