字符编码问题三个不可见的字符(0xEF-0xBB-0xBF,即BOM)

博主在编写GTALabel.ado小程序时遇到Windows TXT文件UTF-8编码带有BOM头的问题,这导致Stata无法正常导入数据。通过搜索和尝试,发现其他软件如Python也有类似问题。尽管在StataList论坛未找到解决方案,但博主探讨了使用DOS批处理命令删除BOM头的可能性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

全文阅读:https://www.lianxh.cn/news/5644546da34e4.html

目录

1. 背景

今天在编写 GTALabel.ado 小程序时遇到了一个问题,分享一下我的解决思路。

这个问题困扰我好几天了,没心思干别的事情。

问题: Windows 系统的 txt 文件在使用 utf-8 编码保存时会默认在文件开头插入三个不可见的字符:0xEF 0xBB 0xBF,称为 BOM 头。 对此问题的详细讨论参见 「Windows文本文件编码」

其间,一度想偷懒询问 Stata 公司的老大哥 Peng Hua 博士,或是 Boston College 的 Baum 教授,也想到了李春涛和王群勇。询问之前,我需要把我的问题说清楚。于是,做了一个极简的例子 (下面会看到),然后把我能做的各种尝试都写在里面,让他们知道我实在是不得已才麻烦他们的。

首先是在 Stata List 论坛里搜索,关键词包括:txt BOMimport delimited 等。唯一一篇相关的帖子虽然涉及到了这个问题,但并未给出解决方法:「Cannot destring numbers--hidden characters? - Statalist」 。

无奈这下,只好扩大搜索范围。

就读取 txt 文件而言,其他软件也存在相似的问题,例如,python 读取带 BOM 的 utf-8 格式文件

也有人提到了 DOS 下的批处理命令:批处理命令下如何删除utf-8编码的txt文本的bom头?

全文阅读:https://www.lianxh.cn/news/5644546da34e4.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值