Dón*_*nal 0 java servlets character-encoding
我有一个Java servlet,它通过HTTP GET请求从上游系统接收数据.此请求包含一个名为"text"的参数和另一个名为"charset"的参数,该参数指示text参数的编码方式:
如果我指示上游系统向我发送文本T?并调试servlet请求参数,我会看到以下内容:
request.getParameter("charset") == "UTF-16LE"
request.getParameter("text").getBytes() == [0, 84, 1, 0]
Run Code Online (Sandbox Code Playgroud)
此字符串中两个字符的代码点(十六进制)为:
[T] 0054
[?] 0100
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何将其转换byte[]回String "T?".我应该提一下,我并不完全信任charset并怀疑它可能正在使用UTF-16BE.
使用String(byteArray, charset)构造函数:
byte[] bytes = { 0, 84, 1, 0 };
String string = new String(bytes, "UTF-16BE");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2196 次 |
| 最近记录: |