Tag: iso 8859 1

Javamail ISO-8859-1格式化

我使用Javamail Api为我的Android手机制作了一个电子邮件客户端。 如果我尝试使用以下方法获取发件人的邮件地址和收件人邮件地址: Address[] froma = m.getFrom(); String from = InternetAddress.toString(froma); Address[] toa = m.getRecipients(Message.RecipientType.TO); String to = InternetAddress.toString(toa); 我得到一个像这样的字符串: “Georg =?ISO-8859-1?Q?SP = E4the?=它必须是GeorgSpäthe或Georg Spaethe。 我认为问题是这是德国邮件与另一种编码。 任何人都可以帮我解决这个问题吗?

Java App:无法正确读取iso-8859-1编码文件

我有一个编码为iso-8859-1的文件,包含ô等字符。 我正在使用java代码读取此文件,例如: File in = new File(“myfile.csv”); InputStream fr = new FileInputStream(in); byte[] buffer = new byte[4096]; while (true) { int byteCount = fr.read(buffer, 0, buffer.length); if (byteCount <= 0) { break; } String s = new String(buffer, 0, byteCount,"ISO-8859-1"); System.out.println(s); } 然而,ô字符总是乱码,通常打印为? 。 我已经阅读了这个主题(并且在路上学到了一点),例如 http://www.joelonsoftware.com/articles/Unicode.html http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4508058 http://www.ingrid.org/java/i18n/utf-16/ 但仍然无法使这个工作 有趣的是,这适用于我的本地电脑(xp),但不适用于我的Linux机箱。 我已经检查过我的jdk支持所需的字符集(它们是标准的,所以这并不奇怪)使用: System.out.println(java.nio.charset.Charset.availableCharsets());

Java InputStream编码/ charset

运行以下(示例)代码 import java.io.*; public class test { public static void main(String[] args) throws Exception { byte[] buf = {-27}; InputStream is = new ByteArrayInputStream(buf); BufferedReader r = new BufferedReader( new InputStreamReader(is, “ISO-8859-1”)); String s = r.readLine(); System.out.println(“test.java:9 [byte] (char)” + (char)s.getBytes()[0] + ” (int)” + (int)s.getBytes()[0]); System.out.println(“test.java:10 [char] (char)” + (char)s.charAt(0) + ” (int)” + […]

在Java中将UTF-8转换为ISO-8859-1

我正在阅读XML文档(UTF-8)并最终使用ISO-8859-1在网页上显示内容。 正如预期的那样,有一些字符没有正确显示,例如“ , –和’ (它们显示为?)。 是否可以将这些字符从UTF-8转换为ISO-8859-1? 这是我编写的代码片段,用于尝试此操作: BufferedReader br = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), “UTF-8”)); StringBuilder sb = new StringBuilder(); String line = null; while ((line = br.readLine()) != null) { sb.append(line); } br.close(); byte[] latin1 = sb.toString().getBytes(“ISO-8859-1”); return new String(latin1); 我不太确定会出现什么问题,但是我认为它是readLine()引起了悲伤(因为字符串将是Java / UTF-16编码的?)。 我尝试的另一种变化是用latin1替换 byte[] latin1 = new String(sb.toString().getBytes(“UTF-8”)).getBytes(“ISO-8859-1”); 我已经读过以前关于这个主题的post,我正在学习。 在此先感谢您的帮助。

为什么Java的String.getBytes()使用“ISO-8859-1”

来自java.lang.StringCoding: String csn = (charsetName == null) ? “ISO-8859-1” : charsetName; 这是从Java.lang.getBytes()中使用的,在linux jdk 7中我总是认为UTF-8是默认的字符集? 谢谢

ISO-8859-1编码和二进制数据保存

我读了@Esailija对我的一个问题的评论 ISO-8859-1是唯一完全保留原始二进制数据的编码,具有精确的字节代码点匹配 我也在@AaronDigulla的回答中读到: 在Java中,ISO-8859-1(又名ISO-Latin1)是1:1映射 我需要对此有所了解。 这将失败(如此处所示): // \u00F6 is ö System.out.println(Arrays.toString(“\u00F6”.getBytes(“utf-8”))); // prints [-61, -74] System.out.println(Arrays.toString(“\u00F6”.getBytes(“ISO-8859-1”))); // prints [-10] 问题 我承认我不太明白 – 为什么它没有得到上面代码中的字节 ? 最重要的是,指定的位置 ( ISO-8859-1 字节保留行为 ) – 链接到源,或者JSL会很好。 它是唯一具有此属性的编码吗? 它与ISO-8859-1是默认默认值有关吗? 另请参阅此问题以获取其他字符集中的反例。