Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';t base64正确解码utf-8特殊字符_Java_Android_Python_Encoding - Fatal编程技术网

Java Can';t base64正确解码utf-8特殊字符

Java Can';t base64正确解码utf-8特殊字符,java,android,python,encoding,Java,Android,Python,Encoding,我有一个与Python后端通信的Android应用程序。它发送一个base64编码的字符串,Python服务器对其进行解码。目前,它可以处理0-9个A-z字符,但如果我输入Aæ、ø或其他特殊字符,整个输出都会乱码。我猜想这是一个编码问题,但我不太明白我做错了什么 爪哇: 和蟒蛇 subject = base64.b64decode(subject) body = base64.b64decode(body).decode('UTF-8') 有人能看到这里有什么问题吗 在Java方面,如果我发送

我有一个与Python后端通信的Android应用程序。它发送一个base64编码的字符串,Python服务器对其进行解码。目前,它可以处理0-9个A-z字符,但如果我输入Aæ、ø或其他特殊字符,整个输出都会乱码。我猜想这是一个编码问题,但我不太明白我做错了什么

爪哇:

和蟒蛇

subject = base64.b64decode(subject)
body = base64.b64decode(body).decode('UTF-8')
有人能看到这里有什么问题吗

在Java方面,如果我发送以下文本,一切都很好

input = "[Mar 6 - 15:45:5] hello world"
output = "W01hciA2IC0gMTU6NDU6NV0gaGVsbG8gd29ybGQKQmF0dGVyeTogNTAuMCU="
但是,以下方法不起作用

input = "[Mar 6 - 15:46:54] hello wørld"
Python对其进行解码时,会得到以下结果:

[Mar 6 - 15:46:54] ᘀ栀攀氀氀漀 眀爀氀

它被编码为

请包含显示问题的示例数据好吗?原始字符串的确切性质是什么,base64版本是什么,Python到底显示了什么?您应该在每个阶段跟踪准确的数据,以便找出问题所在。(顺便说一句,对于base64版本和原始文本都使用
text
变量是没有帮助的;如果找不到UTF-8,只返回原始文本也是没有帮助的。)我可以在那里看到UTF-16字节的文本
hello wørld
。您未能在某个位置将其正确编码为UTF-8。
>>打印u“ᘀ栀攀氀氀漀 眀爀氀".encode('utf-16-be')。decode('utf-16-le')
产生
hello wrl
。因此,utf-16字节顺序被交换,一些数据丢失,但您明白了。因为是Java作为utf-16在内部处理Unicode数据,所以这个问题完全在Java方面。
[Mar 6 - 15:46:54] ᘀ栀攀氀氀漀 眀爀氀