我使用的是OS X 10.5.5 (不过我想这没什么关系)
我有一组带有花哨字符的文本文件,比如双反引号、省略号("...")在一个字符中等等。
我需要将这些文件转换成好的老式7位ASCII,最好不要丢失字符含义(即,将这些省略号转换为三个句点,将反引号转换为通常的"s“等)。
请建议使用一些智能命令行(bash)工具/脚本来执行此操作。
发布于 2008-10-17 16:56:03
Elinks web浏览器会将Unicode实体转换为它们的ASCII码等效项,如"--“表示”-“和"...”对于"…“有一个python模块python-elinks使用相同的转换表,将其转换为外壳过滤器是很容易的,如下所示:
#!/usr/bin/env python
import elinks
import sys
for line in sys.stdin:
line = line.decode('utf-8')
sys.stdout.write(line.encode('ASCII', 'elinks'))发布于 2008-10-17 16:30:42
据我所知,iconv应该这么做。对于如何处理一个输入字符应该/可能成为几个输出字符的转换,不是百分之百确定的,例如省略号示例...一些可以尝试的东西!
更新:我确实试过了,但它似乎不起作用。它失败了,可能是因为它不知道如何用“较小”的编码来表示省略号(我使用的测试字符)。从UTF-8到UTF-16的转换很顺利。:/不过,iconv可能值得进一步研究。
发布于 2008-10-17 16:48:09
看看音译工具;我喜欢Unidecode (用Perl编写),而且移植到其他语言也不是太难。
https://stackoverflow.com/questions/212745
复制相似问题