gpt4 book ai didi

Java将文件写为纯 "windows-1252"

转载 作者:太空宇宙 更新时间:2023-11-04 07:57:17 24 4
gpt4 key购买 nike

我有以下十进制 ascii 值数组

int[] istr={146,192,128,224,185,152,240,192,6,26,66,72,186,184,88,128,182,40,104,96,36,236,152,128,212,200,64,64,101,252,174,0,96,192,112,24,173,228,200,0,192,128,96,192,144,116,201,48};

我想将这些值作为(ascii/windows-1252)字符写入文件中。

HOW IT SHOULD LOOK LIKE:    ’À€à¹˜ðÀBHº¸X€¶(h`$였ÔÈ@@eü®
MY OUTPUT: ?À?à¹?ðÀBHº¸X?¶(h`$ì??ÔÈ@@eü®

正如您可以轻松看到的,我的输出中有一些字符不会像我期望的那样出现在文件中。写入我的文件的代码:

OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(output),"windows-1252");
try {
for (int c : istr) {
out.write(c);
}
} finally {
out.close();
}

那么为什么有些特殊字符没有正确写入我的文件?

最佳答案

当您调用Writer.write(int)时您应该提供一个 Unicode 值。

例如,查看您的第一个字符,您得到的是 Unicode 146,又名 U+0092。看着Unicode chart for U+0080 to U+00FF ,即“私用2”字。目前尚不清楚为什么您希望它作为撇号出现。

如果您已经获得了想要在文件中结束的确切字节,则根本不应该使用 Writer - 您应该只使用 OutputStream

关于Java将文件写为纯 "windows-1252",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13416691/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com