当前位置: 首页 > 知识库问答 >
问题:

Java字节流非英语字符

阙项禹
2023-03-14

我读了这段代码。正如世外桃源.txt内容使用“测试”。该文件的大小为 4 个字节。如果我使用调试来运行 out.write(c) 一次一个字节,每次打开文件后再次打开.txt(用记事本)我依次看到:t--

共有1个答案

巫墨一
2023-03-14

正如您所观察到的,单个字符(Java内部表示中为16位)在字节流表示中转换为可变的字节数,特别是UTF-8。

(有些字符占用两个char值;我将忽略这些,但答案仍然适用,只是更适用)

如果你在实验中输出“字节方式”,在某些情况下你会输出一个分数字符。这是一个没有意义的非法序列;一些软件(如记事本)仍然会试图理解它。这甚至可能包括猜测编码。例如,我不知道是不是这样,但是如果文件的前几个字节不是有效的UTF-8 -我们知道你的半字符输出不是有效的UTF-8-那么记事本可能会猜测是完全不同的编码,它会将字节序列视为完全不同的字符的有效表示。

TL;垃圾输出,垃圾显示。

 类似资料:
  • 问题内容: 在那里,我正在制作此应用来更改字幕文件。当我测试它时,我遇到一个奇怪的问题,当我在非英语(例如,波斯语)上对其进行测试时,该程序将无法读取该文件。这是我在程序中阅读字幕的方式: 其中address是.srt文件的字符串保留位置。 我应该怎么做才能使程序读取文件? 问题答案: 创建时选择其他编码。 遵循此思路的某些方法可能会起作用: 这将更改扫描程序以使用UTF-16编码读取文件。

  • 本文向大家介绍详解JAVA 字节流和字符流,包括了详解JAVA 字节流和字符流的使用技巧和注意事项,需要的朋友参考一下 1、InputStream 和 Reader InputStream 和 Reader 是所有输入流的抽象基类,本身并不能创建实例来执行输入,但它们将成为所有输入流的模板,所以它们的方法是所有输入流都可使用的方法。 在 InputStream 里包含如下三个方法。 int rea

  • 问题内容: 请解释什么是字节流和字符流。这些到底是什么意思?Microsoft Word文档是面向字节还是面向字符? 谢谢 问题答案: 流是顺序访问文件的一种方式。字节流逐字节访问文件。字节流适用于任何类型的文件,但不适用于文本文件。例如,如果文件使用unicode编码,并且一个字符用两个字节表示,则字节流将分别处理这些字节,您需要自己进行转换。 字符流将逐字符读取文件。必须为字符流提供文件的编码

  • 问题内容: 我在从http get请求获取希伯来字符时遇到问题。 我得到这样的正方形字符:“ []”,而不是希伯来字符。 英文字符可以。 这是我的功能: 您可以通过以下示例网址进行测试: 谢谢! 问题答案: 您链接到的文件似乎不是。我测试过使用(希伯来语编码)可以正确打开它,您应该尝试使用而不是。

  • 本文向大家介绍java 字节流和字符流的区别详解,包括了java 字节流和字符流的区别详解的使用技巧和注意事项,需要的朋友参考一下 字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如图所示。 下面以两个写文件的操作为主进行比较,但是在操作时

  • 问题内容: 我想将以下字符串解析为日期: 我遵循了这一点,想到了: 就像英语字符串的魅力一样。 我的问题 :我想解析 德语字符串 。喜欢: 我知道,我可以通过正则表达式匹配日,月和年,然后进行解析。但是有没有可能 告诉time.Parse为month使用不同的常量集 ? 问题答案: 该时间包目前不支持i18n。等待发生这种情况时,您可以尝试使用包装程序包,例如: github.com/goodsi