【发布时间】:2010-12-30 19:26:39
【问题描述】:
如何使用 Bash 将 Žvaigždės aukštybėj užges 或 äüöÖÜÄ 等字符串分别转换为 Zvaigzdes aukstybej uzges 或 auoOUA?
基本上我只想转换所有不在拉丁字母表中的字符。
谢谢
【问题讨论】:
如何使用 Bash 将 Žvaigždės aukštybėj užges 或 äüöÖÜÄ 等字符串分别转换为 Zvaigzdes aukstybej uzges 或 auoOUA?
基本上我只想转换所有不在拉丁字母表中的字符。
谢谢
【问题讨论】:
根据您的机器,您可以尝试将您的字符串通过管道
iconv -f utf-8 -t ascii//translit
(或者无论你的编码是什么,如果它不是 utf-8)
【讨论】:
你也许可以使用 iconv。
例如字符串:
Žvaigždės aukštybėj užges 或 äüöÖÜÄ
在文件testutf8.txt,utf8格式。
运行命令:
iconv -f UTF8 -t US-ASCII//TRANSLIT testutf8.txt
结果:
Zvaigzdes aukstybej uzges 或 auoOUA
【讨论】:
echo Hej på dig, du den dära | iconv -f utf-8 -t us-ascii//TRANSLIT
给予:
Hej pa dig, du den dara
【讨论】:
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) {
}
【讨论】: