对于当前项目,我使用了许多以UTF8保存的csv文件。这种编码的动机是它包含德语信息,包含特殊字符ä,ö,ü,ß。我的团队正在使用Mac OS X和Windows 7上的Stata 13(软件经常更新)。
当我们在Stata中导入csv文件(导入时,我们选择Latin-1)时,两个操作系统上都会正确显示特殊字符。但是,当我们将数据集导出到Mac OS X上的另一个csv文件时 - 我们需要在我们的设置中经常这样做 - 特殊字符被替换,例如, ä - > Š,ü - > Ÿ等等。在Windows上,导出的工作方式如魅力和特殊字符不会被替换。
疑难解答:Stata 13无法解释unicode。我曾尝试将utf8文件转换为windows1252和latin 1(iso 8859-1)编码(因为,毕竟它包含的所有内容都是德语字符),然后在Stata中导入之前使用Sublime Text 2。但是,Mac OS X仍然存在同样的问题。
昨天,Stata 14宣布显然可以处理unicode。如果这是原因,那么它可能有助于我的问题,但是,我们将无法很快升级。除此之外,我想知道为什么问题出现在Mac上而不是在Windows上?有人可以帮忙吗?谢谢。
[编辑开始] 当我使用“Mac Roman”文本编码再次导入导出的csv文件时(Stata允许在导入对话框中指定),然后我的德语特殊字符再次出现。显然我并不是唯一一个this thread看起来遇到这个问题的人。但是,因为我需要使用导出的csv文件,我仍然需要解决此问题。 [编辑结束]
[EDIT2开始] 一个例子是“Bösdorf”这个词改为“Bšsdorf”。在原始文件中,十六进制代码为42c3 b673 646f 7266,而导出文件中的十六进制代码为42c5 a173 646f 7266. [EDIT2结束]
答案 0 :(得分:1)
在修复错误之前,您可以使用
解决此问题iconv -f utf-8 -t cp1252 <oldfile.csv | iconv -f mac -t utf-8 >newfile.csv
这解除了不正确的转码,显然Stata中的导出功能在内部执行。
根据您的指标,cp1252
似乎是一个很好的猜测,但它也可能是cp1254
。如果你想不出来的话,更多的例子可以帮助解决这个问题(常见的德语字符仍然包括ä和大写的变音符号,德语双连词ß等)。
答案 1 :(得分:0)
Stata 13及以下版本在Mac OS X中使用不推荐使用的区域设置,即macroman(Mac OS X是unicode)。我通常使用StatTransfer将西班牙语中的Excel(unicode)转换为Stata(Western,macroman; Options-&gt; Encoding options)。这是获得á,é等的唯一方法。此外,Stata 14导入unicode没有问题,但坚持导出es_ES(西班牙西班牙语)作为默认语言环境,必须在导出结束时添加命令locale UTF-8命令有一个可读的Excel文件。