GNU sed(对于Windows)可以处理Unicode吗?如果是这样,是代码页/语言环境问题还是开关?


10

我已经使用GNU SED了两年了。有时它使我有点烦,但是它做得很好……对于单字节字符集!
我时不时注意到对GNU SED的引用是Unicode感知的,但是我所看到的最接近的是其“二进制”模式。而二进制不是Unicode。
GSED可以处理CodePoint分辨率的Unicode文本文件,尤其是\ r \ n(Windows)...,如果可以的话,它希望使用UTF-8,UTF-16还是什么?SED如何检测编码?


1
通常unicode是用\ uXXXX选项指定的。试试这个japanease家伙的编译sky.geocities.jp/hp_gabo200x/room_tool.html
Mikhail

Answers:


1

我对sed一无所知,但是经过一番艰苦的Google搜索之后,它似乎已经通过LANG环境变量支持了多种代码页。我相信,在没有LANG的情况下,UTF-8实际上是默认设置。我不知道Windows端口是如何设置的。我确实非常怀疑sed对输入流完全不执行任何检测处理。

来源:https : //stackoverflow.com/questions/67410/why-does-sed-fail-with-international-characters-and-how-to-fix http://omgili.com/mailinglist/cygwin/cygwin/com /20100520123926GA1432onderneming10xs4allnl.html

您也可以按此处所述尝试转义字符:http : //forums.whirlpool.net.au/forum-replies-archive.cfm/841095.html不过 这看起来很麻烦。


@马修:谢谢。似乎开始出现的问题可能不在于SED.exe本身,而是Windows 无法在其cmd.exe控制台中很好地处理代码页。也许它可以在PowerShell中运行,但是如果我必须去那里,我宁愿专注于Python。据我所知,Windows自己的骄傲和喜悦UTF-16(代码页1200,msdn.microsoft.com / zh - cn / library / dd317756%28VS.85%29.aspx)仅可用于托管应用程序,这意味着什么,但肯定不能在控制台中使用。.转换为UTF-8并返回吗?没门!我来了Python。(或'Nix和Bash)
Peter.O 2010年

听起来不错。我有点困惑cmd.exe是怎么引起问题的,以及Python是如何解决的(除了Python的知名魔术功能(xkcd.com/353)),但我不会假装理解这些变化cmd.exe。祝你好运!
Vanessa Phipps 2010年

@fred:阅读:.NET。
Hello71 2011年

2
我已经解决了这个问题......我已经完全大约6个月前下降了MS,现在使用Ubuntu。据光滑如丝...(我不会回头......
Peter.O
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.