V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
shenhualv7
V2EX  ›  Linux

win 下用 Linux paste 命令合并输出了个 txt,打开乱码

  •  
  •   shenhualv7 · 2022-03-12 13:51:47 +08:00 · 2270 次点击
    这是一个创建于 991 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在 win 下用 git bash 里的 paste 输出了个 txt ,因为有中文用记事本打开是乱码的,用记事本重新保存成 utf-8 、gbk 、GB18030 都不行,这样该怎么处理才能让我记事本打开正常呢。在 gitbash 里用 cat 显示是正常的。

    7 条回复    2022-03-16 00:39:08 +08:00
    Buges
        1
    Buges  
       2022-03-12 13:56:32 +08:00 via Android
    open with encoding 和 save as encoding
    thinkershare
        2
    thinkershare  
       2022-03-12 14:15:18 +08:00
    先用正确的编码打开, 然后保存成 UTF-8 编码, 另外记事本应该是可以正确识别 UTF-8 的, 你可以使用 VSCode 开文本文件, VSCode 应该是可以猜测出你的正确编码, 然后按照一楼所说, 修改编码为 UTF-8
    thinkershare
        3
    thinkershare  
       2022-03-12 14:18:05 +08:00
    另外我发现记事本是可以正常打开 GB2312 和 UTF-8 的, 你先确认一下你的文件实际使用的编码是什么, VSCode 的右下是可以修改打开文件的编码方式的, 自己换几个试一试, 常见的就是 UTF-8/UTF-16/GB2312/GBK
    cssk
        4
    cssk  
       2022-03-12 14:47:59 +08:00 via iPhone
    记事本小心,BOM
    imn1
        5
    imn1  
       2022-03-12 16:33:02 +08:00
    windows 内,unicode 这个词,多数情况(不一定)是指 UTF-16 LE ;而 gb2312 通常是指 GBK ,因为 gb2312 只有六千多汉字,是 win32 时代的,现在基本都是 GBK ,兼容 gb2312 ,只是沿用了旧称罢了

    linux 大多数是无 BOM ,windows 使用 UTF-8/16 保存的东西多数是带 BOM 的

    不要使用记事本,使用现代的编辑器,能自动或手动识别多种编码的编辑器

    另,你输出 txt 是使用 > 命令么?这种情况要看 cmd 自身的编码是什么
    在 cmd 里面运行 chcp 无参数命令,就能显示 cmd 的编码,962 相当于 GBK ,65001 相当于 utf-8 ,其他数字可以去网上查 "windows code page"
    shenhualv7
        6
    shenhualv7  
    OP
       2022-03-15 23:21:05 +08:00
    @Buges @thinkershare @cssk@inm1
    谢谢大家的建议,已经弄好了,是因为之前合并的一个文件有 bom ,而且这个文件是拼在后面的,也就是这个 bom 不在合并后文件的第一个字符处,所以合并之后的文件怎么改编码也改不对。
    另外我的 vscode 好像不支持打开 txt 。。什么鬼。。
    thinkershare
        7
    thinkershare  
       2022-03-16 00:39:08 +08:00
    @shenhualv7 VSCode 没啥文件打不开, 包括二进制文件都可以通过插件直接查看 Binary 或者 HEX, 文件内容和后缀没啥关系, 你直接将文件拖入到 vscode 就好了. 找个博客好好理解一下字符集, 编码规则, 存储编码, 这个对写代码还是有点作用的, 另外你这种混合编码写入到一个文件是不好处理的, 怎么改编码都会得到错误结果, 你必须知道在字节的多少偏移位置开始是另外要给文件, 然后写代码, 自己统一转换为同一种编码! UTF-8 的 BOM 在 Windows 上是个历史遗留问题, 其它的 UTF 存储格式的 BOM 是必须的, 将不同编码的二进制流写入到文件的确需要小心!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3522 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 04:46 · PVG 12:46 · LAX 20:46 · JFK 23:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.