gpt4 book ai didi

ruby - Ruby 1.9 中的 Unicode 字符串

转载 作者:数据小太阳 更新时间:2023-10-29 07:14:03 24 4
gpt4 key购买 nike

我编写了一个 Ruby 脚本,它正在读取一个包含 unicode 字符的文件 (File.read()),它在命令行中运行良好。

但是,当我尝试将其放入 Automator Workflow (Mac OS X) 时,出现此错误;

2009-12-23 17:55:15 -0500: /Users/jeffreyaylesworth/bin/symbols:19:in `split': invalid byte sequence in US-ASCII (ArgumentError)
(traceback)

因此当从 Automator 运行时,sp​​lit 突然不喜欢非 ASCII 字符。据我所知,两者都从相同版本的 Ruby 运行(版本号相同)。

我不太关心他们为什么表现不同(但如果有人知道,那就太好了),但我想要一个解决方案来让 split 接受非 ASCII 字符。

如果有帮助,我需要将单个字符的文本分成两部分,所以如果类似于 C 的分词器的东西可以工作,我可以使用它。

最佳答案

您没有指定文件的编码。由于不可能可靠地自动确定文件的编码,因此必须明确指定编码。如果不是,则使用外部编码,如果未设置,将使用环境中指定的编码,如果环境未指定编码,则假定文件为 7位 US-ASCII。

在您的情况下,这两种环境似乎存在差异(自动化脚本通常在没有语言环境设置的非常受限的环境中运行)或解释器的调用方式不同。

所以,你需要做类似的事情

File.read('/path/to/file', encoding: 'UTF-8')

关于ruby - Ruby 1.9 中的 Unicode 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1955811/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com