带有Ñ的Java编码问题;
我在ajax调用请求中获取字符串时遇到问题。 例如,字符串中有单词“ñoño”,但当我使用以下命令读取参数时:带有Ñ的Java编码问题;,java,ajax,urlencode,Java,Ajax,Urlencode,我在ajax调用请求中获取字符串时遇到问题。 例如,字符串中有单词“ñoño”,但当我使用以下命令读取参数时: String parameter = request.getParameter("param"); 结果我有了奇怪的性格 所以我添加了下一个代码 byte [] parameterByte= parameter.getBytes(); parameter = new String(parameterByte,"UTF-8"); 结果,我得到了大部分的角色,除了那一个
String parameter = request.getParameter("param");
结果我有了奇怪的性格
所以我添加了下一个代码
byte [] parameterByte= parameter.getBytes();
parameter = new String(parameterByte,"UTF-8");
结果,我得到了大部分的角色,除了那一个。为什么我对这个角色有问题?有什么想法吗
Regars.我通过以下方式解决问题:
byte [] parameterByte= parameter.getBytes("ISO-8859-15");
parameter = new String(parameterByte,"UTF-8");
问题是,我为什么要这么做?我的环境/代码中有什么错误导致此问题?有什么想法吗 在这种特殊情况下,有两个地方需要控制编码:
在每个JSP的顶部,或者
*.jsp
UTF-8
在web.xml
中,将其应用于整个应用程序getParameter()
)之前,将执行以下调用
此调用的最佳位置是映射到/*
URL模式上的。但是,在GET的情况下(当参数位于请求URL而不是请求正文中时),无法通过编程控制它。您需要在servletcontainer端对其进行配置。同样,您不清楚正在使用哪个servletcontainer。根据您之前提出的问题,我发现您正在使用Tomcat或至少熟悉它。在这种情况下,您需要打开其/conf/server.xml
文件并编辑
元素以添加URI编码:
System.out.println()
控制台或数据库。但你自己的回答意味着这已经被正确地设定了
另见:
request.setCharacterEncoding("UTF-8");