paypal ipn错误的编码问题

时间:2014-01-14 14:14:55

标签: encoding paypal paypal-ipn

我有来自paypal的ipn问题。我发送他们的数据utf-8编码(例如“Naročilošt”作为项目名称),当有人支付时,他们发给我的反应是错误的:“Naro ~D ~Milo ~E¡t。”(回复声称这是UTF-8编码的)然后当我尝试验证付款时我得到它是无效的。

我试图在我的paypal配置文件中更改“购买按钮”编码,但它不起作用(我仍然得到错误编码字符的响应)。有人知道如何解决这个问题吗?我宁愿避免将项目名称转换为简单的ascii或类似的东西。

1 个答案:

答案 0 :(得分:0)

OP解决方案。

根据this

  

当Servlet容器收到请求时,它总是将请求参数传递给以ISO-8859-1编码解码的程序。 (例如,浏览器以UTF-8编码,但容器在ISO-8859-1中解码。)因此,您的servlet或JSP将始终接收ISO-8859-1编码以外的字符的垃圾。

所以解决我的问题的方法就是获取请求参数:

String value = request.getParameter("mytext");  
try{  
   value = new String(value.getBytes("8859_1"), "UTF-8");  
}catch(java.io.UnsupportedEncodingException e){  
   System.err.println(e);  
}