gpt4 book ai didi

cocoa - NSTask字符串编码问题

转载 作者:行者123 更新时间:2023-12-03 18:05:43 26 4
gpt4 key购买 nike

在我的程序中,我通过 NSTask 进行 grep 操作。由于某种原因,有时我不会得到任何结果(即使代码显然与从 CLI 运行的命令相同,运行得很好),所以我检查了我的代码并在 Apple 的文档中发现,当向一个 NSTask 对象,“NSTask 对象将路径和参数中的字符串转换为适当的 C 样式字符串(使用 fileSystemRepresentation),然后通过 argv[] 将它们传递给任务”(snip)。

问题是我可能会 grep 像“Río Gallegos”这样的术语。遗憾的是(正如我用 fileSystemRepresentation 检查的那样),它经过了转换,结果是“Rião Gallegos”。

我该如何解决这个问题?

-- 瑞

最佳答案

The problem is that I might grep terms like "Río Gallegos". Sadly (as I checked with fileSystemRepresentation), that undergoes the conversion and turns out to be "RiÃÅo Gallegos".

这是一种可能的解释。您的意思是“Río Gallegos”被转换为“Ri\xcc\x81o Gallegos”——UTF-8 字节表示分解的 i + 组合锐音符号。

您的问题是 grep 没有将这些字节解释为 UTF-8。 grep 正在使用其他一些编码——显然是 MacRoman。

解决方案是告诉 grep 使用 UTF-8。这需要在 grep 任务的 environment 中设置 LC_ALL 变量.

要使用的快速而肮脏的值是“en_US.UTF-8”;更合适的方法是获取用户主要的语言代码 preferred language ,将连字符(如果有)替换为下划线,并在其末尾粘贴“.UTF-8”。

关于cocoa - NSTask字符串编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2533944/

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