运行以下(示例)代码
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)" + (int)s.charAt(0));
System.out.println("test.java:11 string below");
System.out.println(s);
System.out.println("test.java:13 string above");
}
}
给我这个输出
test.java:9 [byte](字符)?(整数)63
test.java:10 [char](char)?(整数)229
test.java:11下面的字符串
?
test.java:13字符串以上
如何在第9行打印输出中保留正确的字节值(-27)?因此,将收到System.out.println(s)
命令的预期输出(å)。
如果要保留 字节 值,最好不要使用Reader。要以文本表示任意二进制数据并将其稍后转换回二进制数据,应使用base16或base64编码。
但是,要说明发生了什么,请在调用时s.getBytes()
使用 默认 字符编码,该编码显然不包括Unicode字符U + 00E5。
如果您打电话到s.getBytes("ISO-8859-1")
任何地方,而不是s.getBytes()
我怀疑您将获得正确的字节值…但是依靠ISO-8859-1进行操作则有点脏IMO。
So do not worry about tomorrow, for tomorrow will bring worries of its own. Today's trouble is enough for today. (MATTHEW 6:34) 字符编码 其实,标题前面应该加两个字——“坑爹”。 在实践中,字符编码的确是一个“坑”。因为这个世界上,不都是英文。如果都是英文,就没有这个问题
问题内容: 我有一个在GlassFish 3上运行的Java Web应用程序和在MySQL上的JPA(EclipseLink)上运行。我面临的问题是,如果使用该方法将实体保存到数据库中,则字段将丢失完整性;显示而不是某些字符。 服务器,页面和数据库配置为使用。 发布表单数据后,下一页将正确显示数据。此外,它在NetBeans中似乎“调试”当前实体的属性也存储了正确的值。如果可以信任NetBeans
问题内容: 我正在从命令行(Windows 7)运行Java程序。为了简化问题,我仅描述相关部分。 我的输出是垃圾。显然这是一个字符编码问题,Á和á的匈牙利字符未正确显示。我尝试了以下方法: 但是我的输出仍然是垃圾。如何使用Windows 7命令行解决此字符编码问题?谢谢 问题答案: 我通过在命令行中找到正确的编码,然后有你的代码的工作 要么 使用,与编码版本 或 通过指定它的命令行上,只是利用。
问题内容: ’=?KOI8-R?B?W1JFUS0wMDI1NDEtNDc5NzddIO / h7yAi89TSz8rGwdLGz9IiIDs =?= \ r \ n \ t =?KOI8-R?B?Ry43MjkgKDEwKQ ==?=’ 如何将其转换为可读的内容?谢谢 ! 问题答案: email.header.decode_header(‘=?KOI8-R?B?W1JFUS0wMDI1NDEtN
问题内容: Linux / x86_64上的GCC 4.7是否具有默认字符编码,通过它可以验证和解码C源文件中字符串文字的内容?这是可配置的吗? 此外,将字符串文字从字符串文字链接到输出的数据部分时,它是否具有默认的执行字符编码?这是可配置的吗? 在任何配置中,源字符编码都可能与执行字符编码不同吗?(那gcc会在字符编码之间进行代码转换吗?) 问题答案: 我不知道这些选项的实际效果如何(不使用at
There are many languages in use throughout the world, and they use many different character sets. There are also many ways of encoding character sets into binary formats of bytes. This chapter conside