gpt4 book ai didi

Java:在 OutputStreamWriter 构造函数中使用 "UNICODE"参数会破坏编码

转载 作者:行者123 更新时间:2023-12-02 10:54:28 26 4
gpt4 key购买 nike

这几天我在自学java。我注意到在 OutputStreamWriter 构造函数中使用 "UNICODE" 参数存在一个问题。我试图从 2.txt 读取并写入 3.txt (它们都保存为 UNICODE)。但将数据写入文件后,endcoding 被破坏。

BufferedReader reader = new BufferedReader(new InputStreamReader(
new FileInputStream("C:\\Users\\User\\Desktop\\2.txt"), "UNICODE"));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("C:\\Users\\User\\Desktop\\3.txt", true), "UNICODE"));

后来,我将文件保存为 UTF-8,并在构造函数中将 "UNICODE" 替换为 StandardCharsets.UTF_8

BufferedReader reader = new BufferedReader(new InputStreamReader(
new FileInputStream("C:\\Users\\User\\Desktop\\2.txt"), StandardCharsets.UTF_8));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("C:\\Users\\User\\Desktop\\3.txt", true), StandardCharsets.UTF_8));

然后它开始正常工作。所以我想知道为什么 "UNICODE" 参数在 OutputStreamWriter 构造函数中不能以正确的方式工作。我记得以前用过它,一切都很好。

最佳答案

您必须使用有效的编码。

BufferedReader reader = new BufferedReader(new InputStreamReader(
new FileInputStream("C:\\Users\\User\\Desktop\\2.txt"), "UTF-8"));

关于Java:在 OutputStreamWriter 构造函数中使用 "UNICODE"参数会破坏编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51876095/

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