当前位置: 首页 > 面试题库 >

在Java中ISO-8859-1和UTF-8之间如何转换?

白禄
2023-03-14
问题内容

有谁知道如何将字符串从ISO-8859-1转换为UTF-8并重新转换为Java?

我从网络上获取一个字符串并将其保存在RMS(J2ME)中,但是我想保留特殊字符并从RMS中获取字符串,但要使用ISO-8859-1编码。我该怎么做呢?


问题答案:

通常,你无法执行此操作。UTF-8能够编码任何Unicode代码点。ISO-8859-1只能处理其中的一小部分。因此,从ISO-8859-1转换为UTF-8没问题。如果发现不支持的字符,则从UTF-8退回到ISO-8859-1将导致“替换字符”( )出现在文本中。

转码文字:

byte[] latin1 = ...
byte[] utf8 = new String(latin1, "ISO-8859-1").getBytes("UTF-8");

要么

byte[] utf8 = ...
byte[] latin1 = new String(utf8, "UTF-8").getBytes("ISO-8859-1");

你可以使用较低级别的CharsetAPI 进行更多控制。例如,你可以在发现无法编码的字符时引发异常,或者将其他字符用于替换文本。



 类似资料:
  • 问题内容: 我正在阅读XML文档(UTF-8),并最终使用ISO-8859-1在网页上显示内容。正如预期的那样,有几个字符显示不正确,比如,和(他们显示为?)。 是否可以将这些字符从UTF-8转换为ISO-8859-1? 这是我编写的尝试此功能的代码段: 我不太确定发生了什么问题,但是我认为是re​​adLine()引起了麻烦(因为字符串将是Java / UTF-16编码的?)。我尝试的另一种变化

  • 我有一个Android应用程序,它读取带有SQL脚本的文件,将数据插入SQLite数据库。然而,我需要知道这个文件的详细编码,我有一个从SQLite读取信息的EditText,如果编码不正确,它将显示为无效字符,如“?”而不是像“ç,í,ã”这样的字符。 我有以下代码: 这适用于“ISO-8859-1”编码,如果我将“UTF-8”设置为字符集,则适用于UTF-8。我需要以编程方式检测字符集编码(U

  • 问题内容: 我正在尝试将UTF-8中Java编码的字符串转换为ISO-8859-1。例如,在字符串“âabcd”中,“â”在ISO-8859-1中表示为E2。在UTF-8中,它表示为两个字节。C3 A2我相信。当我执行getbytes(encoding),然后使用ISO-8859-1编码的字节创建一个新字符串时,我得到两个不同的字符。â。还有其他方法可以使字符保持一致,即abcd吗? 问题答案:

  • XML生成成功,但是从源中获取的数据内容仍然采用ISO编码,没有使用UTF8解析。 通过将文件编码更改为ISO8859-1,内容被成功解析。 在JAXB对象中设置数据之前,我尝试转换数据,但在UTF-8中仍未解析。 问题只是在Linux下精确,有没有人知道如何操作ISO_8859_1数据并在xml中设置它而没有问题?

  • 问题内容: 我正在制作一个javascript应用程序,该应用程序使用jquery 检索文件并将数据注入到其所嵌入的网页中。 这些文件使用UTF-8编码,并包含重音字符,例如é,ö和å。 问题是我无法控制将要使用该应用程序的页面上的字符集。 有些将使用UTF-8,但其他一些将使用iso-8859-1字符集。这当然会使文件中的特殊字符乱码。 如何使用JavaScript将特殊的UTF-8字符转换为等

  • 主要内容:ISO-8859-1,HTML 预留字符,ISO 8859-1 字符实体现代的浏览器支持的字符集: ASCII 字符集 标准 ISO 字符集 数学符号、希腊字母、其他符号 ISO-8859-1 ISO-8859-1 是大多数浏览器默认的字符集。 ISO-8859-1 的较低部分(从 1 到 127 之间的代码)是最初的 ASCII 字符集(0-9 的数字,大写和小写英文字母表,以及一些特殊字符)。 ISO-8859-1 的较高部分(从 160 到 255 之间的代码)