【发布时间】:2015-04-09 08:04:07
【问题描述】:
对于当前项目,我使用了一些以 UTF8 格式保存的 csv 文件。这种编码的动机是它包含带有特殊字符 ä,ö,ü,ß 的德语信息。我的团队正在 Mac OS X 和 Windows 7 上使用 Stata 13(软件经常更新)。
当我们导入 csv 文件(导入时,我们选择 Latin-1)时,Stata 中的特殊字符在两个操作系统上都正确显示。但是,当我们将数据集导出到 Mac OS X 上的另一个 csv 文件时——我们需要在设置中经常这样做——特殊字符被替换,例如ä -> Š, ü -> Ÿ 等。在 Windows 上,不会替换像魅力和特殊字符这样的导出作品。
疑难解答:Stata 13 无法解释 unicode。在将 utf8 文件导入 Stata 之前,我曾尝试使用 Sublime Text 2 将 utf8 文件转换为 windows1252 和 latin 1 (iso 8859-1) 编码(因为毕竟它包含的都是德语字符)。但是对于 Mac OS X,同样的问题仍然存在。
昨天,Stata 14 发布了,它显然可以处理 unicode。如果这是原因,那么它可能会帮助解决我的问题,但是,我们将无法很快升级。除此之外,我想知道为什么问题出现在 Mac 而不是在 Windows 上?任何人都可以帮忙吗?谢谢。
[编辑开始]当我使用“Mac Roman”文本编码(Stata 允许在导入对话框中指定)再次导入导出的 csv 文件时,我的德语特殊字符再次出现。显然,从this thread 的外观来看,我并不是唯一遇到此问题的人。但是,因为我需要处理导出的 csv 文件,所以我仍然需要解决这个问题。 [编辑结束]
[EDIT2 Start] 一个例子是单词“Bösdorf”被更改为“Bšsdorf”。在原始文件中,十六进制代码为 42c3 b673 646f 7266,而导出文件中的十六进制代码为 42c5 a173 646f 7266。[EDIT2 End]
【问题讨论】:
-
错误导出的字符如何表示?您是否得到文字 Unicode CAPITAL S WITH CARON 或带有组合 caron 的常规 S(这是 Mac 上的正常形式)?另请参阅CAPITAL Y WITH TREMA 和(咳咳)cdn.rawgit.com/tripleee/8bit/master/encodings.html
-
对不起我的无知:我如何才能确定?链接页面上的字符确实看起来与从 Stata 生成的完全一样,是的。请记住,Stata 将 csv 导入为 latin 1(尽管原始源编码是 utf8)。我认为输出也是 latin 1。 mac 上的 latin 1 有什么问题吗?
-
文件中的实际字节数会有所不同。简短样本的十六进制转储将是有益的。有关一些提示,另请参阅character-encoding tag wiki。
-
所以我再次编辑了我的帖子,以包含出现问题的示例的十六进制代码。感谢您向我指出这一点。
标签: unicode utf-8 character-encoding stata