如何使用Bash将Žvaigždės aukštybėj užges
或äüöÖÜÄ
之类的字符串分别转换为Zvaigzdes aukstybej uzges
或auoOUA
?
基本上我只想转换所有不在拉丁字母中的字符。
由于
答案 0 :(得分:53)
根据您的机器,您可以尝试通过
管道iconv -f utf-8 -t ascii//translit
(或者无论你的编码是什么,如果它不是utf-8)
答案 1 :(得分:14)
您可以使用iconv。
例如,字符串:
Žvaigždėsukütybėjužges或äüöÖÜÄ
是文件testutf8.txt,utf8格式。
运行命令:
iconv -f UTF8 -t US-ASCII//TRANSLIT testutf8.txt
结果:
Zvaigzdes aukstybej uzges或auoOUA
答案 2 :(得分:4)
echo Hej på dig, du den dära | iconv -f utf-8 -t us-ascii//TRANSLIT
给出:
Hej pa dig, du den dara
答案 3 :(得分:0)
您也可以使用 python 库 unidecode 来执行此操作:
$ echo "Žvaigždės aukštybėj užges äüöÖÜÄ" | unidecode
输出:
Zvaigzdes aukstybej uzges auoOUA
有关其他方法,请参阅 this post。
答案 4 :(得分:-3)
try {
String name = "Žvaigždės aukštybėj užges ";
String s1 = Normalizer.normalize(name, Normalizer.Form.NFKD);
String regex = "[\\p{InCombiningDiacriticalMarks}\\p{IsLm}\\p{IsSk}]+";
String s2 = new String(s1.replaceAll(regex, "").getBytes("ascii"), "ascii");
} catch (UnsupportedEncodingException e) {
}