我在将Json数据发送到服务器时遇到了问题。我想在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发帖是
{"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":"Invalid UTF-8 start byte 0xa0 at [line:1, column:139]"}]
请任何线索。
谢谢,
SREE
答案 0 :(得分:0)
将字符for(var i = 1; i <= 3; i++) {
window['executed' + ( i > 1 ? i : '' )] = false;
}
// now you can access 'executed', 'executed2', 'executed3' globally
转换为其他字符并进行测试。
答案 1 :(得分:0)
0xa0是Unicode字符&#39; NO-BREAK SPACE&#39; (U + 00A0)
不是通常的空格0x20
在视觉上很难注意到差异,但有些框架不喜欢它。