程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了sed为什么会出现国际字符失败以及如何解决?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决sed为什么会出现国际字符失败以及如何解决??

开发过程中遇到sed为什么会出现国际字符失败以及如何解决?的问题如何解决?下面主要结合日常开发的经验,给出你关于sed为什么会出现国际字符失败以及如何解决?的解决方法建议,希望对你解决sed为什么会出现国际字符失败以及如何解决?有所启发或帮助;

我认为如果文件的输入编码与环境的首选编码不同,则会发生错误。

例:in是UTF-8

$ LANG=de_DE.UTF-8 sed 's/.*| //' < in
X
Y
$ LANG=de_DE.iso88591 sed 's/.*| //' < in
X 
Y

UTF-8可以安全地解释为ISO-8859-1,您会得到奇怪的字符,但除此之外一切都很好。

例:in是ISO-8859-1

$ LANG=de_DE.UTF-8 sed 's/.*| //' < in
X
Gras Och Stenar Trad - From MöY
$ LANG=de_DE.iso88591 sed 's/.*| //' < in
X 
Y

ISO-8859-1无法解释为UTF-8,解码输入文件失败。奇怪的匹配可能是由于sed试图恢复而不是完全失败的事实。

答案是基于Debian Lenny / SID的,并且是sed 4.1.5。

解决方法

GNU sed 4.1.5版本似乎因国际字符而失败。这是我的输入文件:

Gras Och Stenar传统-从Moja到Minneapolis DVD [G2007DVD] 7812 | X
Gras Och Stenar传统-从莫亚到明尼阿波利斯DVD [G2007DVD] 7812 | ÿ

(请注意第二行的变音符号。)

当我这样做

sed的/.* | //’<in

我希望只看到X和Y,因为我已要求删除所有字符,直到“ |”为止 和超越它的空间。相反,我得到:

X
Gras Och Stenar传统-来自M?ÿ

我知道我可以使用tr删除国际字符。首先,但是有一种方法只能使用sed吗?

大佬总结

以上是大佬教程为你收集整理的sed为什么会出现国际字符失败以及如何解决?全部内容,希望文章能够帮你解决sed为什么会出现国际字符失败以及如何解决?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: