我解决了检索和显示非 UTF-8 字符时遇到的问题,但我不明白为什么我的解决方案有效。
以下代码:
final HttpClient client = new HttpClient();
final HttpMethod method = new GetMethod(urlString);
client.executeMethod(method);
final String responseBodyAsString = method.getResponseBodyAsString();
System.out.println(responseBodyAsString);
弄乱了显示屏上的一些字符,例如 Yáñez
我变了:
final String responseBodyAsString = method.getResponseBodyAsString();
到
final ByteBuffer inputBuffer = ByteBuffer.wrap(method.getResponseBody());
final String responseBodyAsString = new String(inputBuffer.array());
并且与以前相同的字符串正确表示为 Yáñez
这是为什么?