我在向服务器发送JSON数据时遇到了问题。我猜测这是与UTF-8格式开头不希望出现的坏字符有关。
我使用了CharDecoder来替换所有畸形的UTF-8字符,以下是代码。
我使用了CharDecoder来替换所有畸形的UTF-8字符,以下是代码。
// Construct the Decoder
CharsetDecoder utf8Decoder = Charset.forName("UTF-8").newDecoder();
utf8Decoder.onMalformedInput(CodingErrorAction.REPLACE);
utf8Decoder.onUnmappableCharacter(CodingErrorAction.REPLACE);
// Configure to replace Malformed input with space
utf8Decoder.replaceWith(" ");
// Construct ByteBuffer
ByteBuffer byteBuff = ByteBuffer.wrap(text.getBytes());
try {
// Process the text.
CharBuffer parsed = utf8Decoder.decode(byteBuff);
return new String(parsed.array());
} catch (CharacterCodingException e) {
e.printStackTrace();
}
这并没有帮助到我。当我查看Json post数据中解析器出错的列行时,发现是一个空格字符。
Json转换为post请求为
{"body":{"messageSegments":[{"type":"Text","text":"This is a link "},{"type":"Mention","id":"005GGGGGG02g6MMIAZ"},{"type":"Text","text":" ish"}]},"capabilities":{"questionAndAnswers":{"questionTitle":"https:\/\/www.google.co.nz\/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-16"}}}
错误是
[{"errorCode":"JSON_PARSER_ERROR","message":"在[line:1, column:139]处出现无效的UTF-8起始字节0xa0"}]
有什么线索吗?
谢谢,
Sree