全文阅读: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 BOM,import delimited 等。唯一一篇相关的帖子虽然涉及到了这个问题,但并未给出解决方法:「Cannot destring numbers--hidden characters? - Statalist」 。
无奈这下,只好扩大搜索范围。
就读取 txt 文件而言,其他软件也存在相似的问题,例如,python 读取带 BOM 的 utf-8 格式文件。
也有人提到了 DOS 下的批处理命令:批处理命令下如何删除utf-8编码的txt文本的bom头?