用java(JSP)将十进制NCRs代码转换为UTF-8
我试图将波斯语字符串解码为UTF-8,但我检查了浏览器本身,将波斯语字符串转换为十进制NCRs代码 如何将十进制NCRs代码转换为UTF-8用java(JSP)将十进制NCRs代码转换为UTF-8,java,jsp,utf-8,Java,Jsp,Utf 8,我试图将波斯语字符串解码为UTF-8,但我检查了浏览器本身,将波斯语字符串转换为十进制NCRs代码 如何将十进制NCRs代码转换为UTF-8 String farMsg = "عتباري"; String finalMsg = new String(farMsg.getBytes(),"UTF-8"); System.out.println("\n Farsi Message \n" + finalMsg); 当我尝试使用上述代码转换时,它工作正常 但是,如果我使用的是来自JSP页面输入框的
String farMsg = "عتباري";
String finalMsg = new String(farMsg.getBytes(),"UTF-8");
System.out.println("\n Farsi Message \n" + finalMsg);
当我尝试使用上述代码转换时,它工作正常
但是,如果我使用的是来自JSP
页面输入框的相同字符串,那么它会给我这样的输出
عتباري
我需要做什么修改才能转换成相同的
编辑
我在jsp输入框和usedrequest.getParameter(“faMSg”)
中输入了تباري代码>但我应该得到
您应该尝试在jsp页面中将内容类型设置为utf-8
:
<%@page contentType="text/html;charset=UTF-8"%>
在读取服务器端的值之前
编辑:
要全局应用此设置,以便不需要编辑每个JSP,还可以将以下条目添加到/WEB-INF/WEB.xml文件中:
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<page-encoding>UTF-8</page-encoding>
</jsp-property-group>
*.jsp
UTF-8
我创建了一个自定义函数,可以将小数NCR转换为字符串
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();
}
public静态字符串转换器decimalncrtostring(字符串十六进制)
{
字符串myString=hex.replace(“,”);
String[]split=myString.split(“;”);
StringBuilder sb=新的StringBuilder();
对于(int i=0;i
这将成功转换您提供的字符串
EDIT我用中文游鍚堃代码>,你好你怎么样代码>和波斯语(和字符)它提供了正确的结果。这是一个很好的工作-空白是我解决的问题
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++)
{
char first = split[i].charAt(0);
if (first==' ')
{
sb.append(" ");
split[i]=split[i].substring(1);
}
if (split[i].isEmpty())
{
}else
{
sb.append((char)Integer.parseInt(split[i]));
}
}
return sb.toString();
}
Public静态字符串转换器decimalncrtostring(字符串十六进制)
{
字符串myString=hex.replace(“,”);
String[]split=myString.split(“;”);
StringBuilder sb=新的StringBuilder();
对于(int i=0;i
从jsp页面,@dbw我在jsp输入框和usedrequest.getParameter(“faMSg”)中输入了تباري代码>但我应该获得请求的值。getParameter(“faMSg”)
在哪里读取值?在servlet中?在其他JSP页面中没有?如果我的字符串类似于java.lang.NumberFormatException:输入字符串:“1990/05/01”java.lang.NumberFormatException.forInputString(NumberFormformFormatException.java:代码>但是根据你的问题你得到的字符串是十进制NCR格式的十进制NCR字符串和十进制NCR的十进制NCR格式的十进制NCR字符串,但根据你的问题你得到的字符串是十进制NCR格式的十进制NCR格式的十进制NCR字符串是根据你的问题你得到的字符串是<代码>以上字符串是<代码>以及以上字符串是<代码>以及上述字符串是<代码>157 7 7 8;358;157 8;157 8;157 7;157;157;157;以及以及以及15 15 15;157;5;15;5;5;以及以及以及15;15;15;5;15;15;15;15;15;5;5;15;5;15;15;5;15;5;5;和15;15;15;5;15;15;5;5;15;15;15;5;5;15;85;和15;以及15;15;15;第五十七条、第五十七条、第四十八条、第四十七条、第五十三条、第四十七条、第四十八条、第四十九条、第三十二条、第1605条、第1740条、第三十二条、第1576条、第1575条、第1588条、第1583条,是代码吗您输入的一半是十进制NCR,部分是普通字符是的,字符串可以包含数字。您可以稍微更改上述逻辑,并添加条件,确定字符是否包含&
或不应用于web.xml文件或jsp页面?
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();
}
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++)
{
char first = split[i].charAt(0);
if (first==' ')
{
sb.append(" ");
split[i]=split[i].substring(1);
}
if (split[i].isEmpty())
{
}else
{
sb.append((char)Integer.parseInt(split[i]));
}
}
return sb.toString();
}