Java ByteArrayOutputStream编码问题
在我从网站下载rss提要的数据后,我对编码有问题。有些字符解释不正确。 我使用HttpResponse.getEntity()并将read inputStream和write in by tearrayoutputstream放入循环中 例如,ByteArrayOutPutStream bs; 在“bs”上写入之后,我使用String test=bs.toString(“UTF-8”) 然而,有些特征是这样的:我的测试题是“我的测试题”——“我的测试题”——“我的测试题”——“我的测试题”——“我的测试题”——“我的测试题”——“我的测试题”——“我的测试题”——“我的测试题”——“我的测试题” 我不能改变那些角色,任何想法Java ByteArrayOutputStream编码问题,java,android,character-encoding,http-post,Java,Android,Character Encoding,Http Post,在我从网站下载rss提要的数据后,我对编码有问题。有些字符解释不正确。 我使用HttpResponse.getEntity()并将read inputStream和write in by tearrayoutputstream放入循环中 例如,ByteArrayOutPutStream bs; 在“bs”上写入之后,我使用String test=bs.toString(“UTF-8”) 然而,有些特征是这样的:我的测试题是“我的测试题”——“我的测试题”——“我的测试题”——“我的测试题”——“
谢谢这不是
UTF-8
编码,很可能是Big5
编码(您的问题历史记录确认您来自中国/香港)
我的测试簿翹癡職疇繡矇簿翹疇簞簣癡瞽竄疆癡穠矇簡疇瞼矇罈疇簫矇繕瓣罈繞癟糧罈癟繕簣瓣繡瓣繙矇癟瞼疇簧瞽疆繞
您应该能够通过自己阅读HttpEntity#getContentType()
来确定这一点。它应该返回类似于
text/html;charset=Big5
它不是在
UTF-8
编码中,很可能是在Big5
编码中(您的问题历史证明您来自中国/香港)
我的测试簿翹癡職疇繡矇簿翹疇簞簣癡瞽竄疆癡穠矇簡疇瞼矇罈疇簫矇繕瓣罈繞癟糧罈癟繕簣瓣繡瓣繙矇癟瞼疇簧瞽疆繞
您应该能够通过自己阅读HttpEntity#getContentType()
来确定这一点。它应该返回类似于
text/html;charset=Big5
@巴卢斯克:你能告诉我,你是怎么发现的,这会很有帮助。@Suresh:用UTF-8将它们转换回字节,然后读取十六进制模式。它不起作用,是的,对,那是汉字。然而,当我检索xml格式的字符串时,它显示:ï»?和getContentType()。Name总是返回“Content Type”,value返回“text/xml”,它不返回chartset;从HttpEntity.getContentType()。
ï»
表示您正在将其作为CP1252或ISO-8859而不是UTF-8读取或打印到控制台/文件。那个中文内容是XML响应的一部分吗?XML应该始终使用UTF-8格式。可能是另一端做得不对。URL是什么?根据您对另一个答案的评论,您在使用Big5时遇到了“异常”。如果它是一个不受支持的编码异常
,则表示您的平台不支持此字符集,您必须首先在平台上安装该字符集。Big5在最新Java 1.6的默认Win7 x64设置中对我有效。很可能Android不支持字符集。@BalusC:你能告诉我,你是如何发现的,这会很有帮助。@Suresh:使用UTF-8将它们转换回字节,然后读取十六进制模式。这不起作用,是的,这是中文字符。然而,当我检索xml格式的字符串时,它显示:ï»?和getContentType()。Name总是返回“Content Type”,value返回“text/xml”,它不返回chartset;从HttpEntity.getContentType()。ï»
表示您正在将其作为CP1252或ISO-8859而不是UTF-8读取或打印到控制台/文件。那个中文内容是XML响应的一部分吗?XML应该始终使用UTF-8格式。可能是另一端做得不对。URL是什么?根据您对另一个答案的评论,您在使用Big5时遇到了“异常”。如果它是一个不受支持的编码异常
,则表示您的平台不支持此字符集,您必须首先在平台上安装该字符集。Big5在最新Java 1.6的默认Win7 x64设置中对我有效。很可能Android根本不支持字符集。