关于JAVA在Post中的字符代码转换

时间:2009-08-11 04:06:34

标签: java struts2

日元标记以下两种方式表达

  • 0x5c(ASCII)
  • 0xa5(utf-8)

当我在Java6环境中执行0xA5的POST,Struts2的环境时,在我在日志中输出的阶段,我变成了0x5C。

在哪里进行字符代码的替换是具体的?

2 个答案:

答案 0 :(得分:1)

我相信你问的日元符号何时会变成ASCII - 答案是当基础默认字符编码从UTF-8变为ASCII时。这可能发生在许多地方:

您能否提供一些有关您目前为这些设置的更多信息?

答案 1 :(得分:0)

我认为问题不是字符转换,而是错误转换或腐败。 ASCII中的字符5C是'\'。对我来说,错误转换将A5转变为5C并不是很明显。日元符号之前或之后的其他字符是否也被错误转换了?

开始寻找问题原因的前两个地方是你的代码从String转换为byte []并再次返回。在客户端转换POST数据时,应确保在HTTP请求Content-Type标头中设置使用的字符集。然后在服务器端,确保您的代码使用传入请求的Content-Type标头中指定的字符集。