我有一个大问题:如果我使用base64_decode($ string),我的结果不一样;在php或者如果我做Base64.decode(string);在android。
示例: 使用此字符串:WWhiZWWSZpNlaGSTnpljZQ ==
在php中,结果是Yhbee'f“ehd”ž™ce。
在android中,结果是Yhbee f ehd ce
我认为存在编码问题,但我不知道在哪里,我的PHP服务器的输出是ISO-8859-1,我没有找到如何告诉Base64.decode使用这种类型的编码
你能帮帮我吗?谢谢答案。PS:我无法触及PHP脚本。
答案 0 :(得分:1)
我认为这会对您有所帮助,请不要使用.toString()
来代替
var str = "WWhiZWWSZpNlaGSTnpljZQ=="
var decoded = String(Base64.decode(str, Base64.NO_WRAP))
我知道这很晚才回答:-D
答案 1 :(得分:0)
我认为解码很好,但Android没有应用正确的编码(可能是utf-8)。
此内容是否显示在HTML网页上?如果是,您是否正确执行ISO-8859-1
编码?
或者,您也可以切换到UTF-8。
答案 2 :(得分:0)
你应该试试这个:
Base64.decode(content.getBytes("ISO-8859-1"), Base64.DEFAULT);
通过这个您将输入字符串content
转换为将从base64解码的ISO-8859-1
编码字节流。