如何在创建文件时指定编码?

时间:2015-11-10 08:31:06

标签: r ansi rscript

我正在使用R脚本来创建和附加文件。但我需要以ANSI编码保存文件,即使某些字符是Unicode格式。如何确保ANSI编码?

initWithCoder:

1 个答案:

答案 0 :(得分:1)

编码可能很棘手,因为你需要在输入时检测你的编码,然后你需要在写入之前转换它。这听起来像您的输入文件input.ttl被编码为UTF-8,您需要将其转换为ASCII。这意味着您可能会丢失一些不可翻译的字符,因为在128位较低范围之外可能没有从UTF-8字符到ASCII的映射。 (在此范围内,UTF-8到ASCII的映射是相同的。)

所以这是如何做到的。您必须相应地修改代码以进行测试,因为您没有提供可重现示例所需的元素。

  1. 确保您的输入文件实际上是UTF-8,并且您正在将其作为UTF-8读取。您可以通过将encoding = "UTF-8"添加到代码的第三行作为readLines()的参数来执行此操作。请注意,您可能无法在Windows平台上将系统区域设置设置为UTF-8,但该文件仍将被读取为UTF-8,即使扩展字符可能无法正确显示。

  2. 使用iconv()将文本从UTF-8转换为ASCII。 iconv()被矢量化,因此它适用于整个文本集。您可以使用

    执行此操作
    text3 <- iconv(text3, "UTF-8", "ASCII", sub = "")
    

    请注意,如果遇到任何不可翻译的字符,sub = ""参数会阻止将整个字符元素转换为NA的默认行为。 (这些包括看似无辜但实际上微妙的邪恶事物,例如&#34;聪明的引语&#34;。)

  3. 现在,当您使用cat()编写文件时,输出应为ASCII。