gpt4 book ai didi

java - 如何使记事本在没有 BOM 的情况下以 UTF-8 格式保存文本?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:35:28 27 4
gpt4 key购买 nike

我有一个 CSV带有特殊重音的文件,并通过选择 UTF-8 编码将其保存在记事本中。当我使用 Java 读取文件时,它也会读取 BOM 字符。

所以我想以 UTF-8 格式保存此文件,而无需在记事本中最初附加 BOM。

否则,Java 中是否有一个内置类可以在读取文件中的内容时消除开头出现的 BOM 字符?

最佳答案

  1. 使用 Notepad++ - 它是免费的,而且比记事本好得多。使用编码在没有 BOM 的情况下以 UTF-8 编码将有助于保存没有 BOM 的文本:

    Notepad++ v6 及更早版本: Screenshot of the Notepad++ Menubar -> Encoding -> Encode in UTF-8 without BOM menu in Notepad++ v6.7.9.2

    Notepad++ v7+:
    Screenshot of the Notepad++ Menubar -> Encoding -> Encode in UTF-8 without BOM menu in Notepad++ v7+

  2. 当我在 Java 中遇到这个问题时,我没有找到任何库来解析这前三个字节 (BOM)。所以我的建议:

    • 使用 PushbackInputStream(in, 3)
    • 读取前三个字节
    • 如果不是 BOM (EF BB BF),将它们推回
    • 将流处理为 UTF-8

关于java - 如何使记事本在没有 BOM 的情况下以 UTF-8 格式保存文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20013991/

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