【发布时间】:2020-01-20 11:07:02
【问题描述】:
我应该如何实现一种方法,该方法将由拉丁字符组成的字符串转换为由一组不同字符组成的字符串,比如说西里尔文。
以 PHP 为例:
function latin_to_cyrillic($string)
{
$array = array(
"а" => "a",
"б" => "b",
"в" => "v",
"г" => "g",
"д" => "d",
"е" => "e",
"ж" => "zh",
"з" => "z",
"и" => "i",
"й" => "y",
"к" => "k",
"л" => "l",
"м" => "m",
"н" => "n",
"о" => "o",
"п" => "p",
"р" => "r",
"с" => "s",
"т" => "t",
"у" => "u",
"ф" => "f",
"х" => "h",
"ц" => "ts",
"ч" => "ch",
"ш" => "sh",
"щ" => "sht",
"ь" => "y",
"ъ" => "a",
"ю" => "yu",
"я" => "ya",
"А" => "A",
"Б" => "B",
"В" => "V",
"Г" => "G",
"Д" => "D",
"Е" => "E",
"Ж" => "Zh",
"З" => "Z",
"И" => "I",
"Й" => "Y",
"К" => "K",
"Л" => "L",
"М" => "M",
"Н" => "N",
"О" => "O",
"П" => "P",
"Р" => "R",
"С" => "S",
"Т" => "T",
"У" => "U",
"Ф" => "F",
"Х" => "H",
"Ц" => "Ts",
"Ч" => "Ch",
"Ш" => "Sh",
"Щ" => "Sht",
"Ь" => "Y",
"Ъ" => "A",
"Ю" => "Yu",
"Я" => "Ya",
"–" => "-");
return str_replace(array_values($array), array_keys($array), $string);
}
【问题讨论】:
-
您的问题没有明确说明。术语“拉丁字符”和“西里尔字符”的定义不明确:存在许多不同的“拉丁字符”和“西里尔字符”字符集。如果您正在考虑特定的内容,例如两个特定的 Windows 字符集,请在您的问题中说明。在 Java 中,字符串使用 Unicode,而不是任何此类字符集,因此所提出的问题没有意义,您可能需要从/到此类字符集和 Unicode 的音译。
-
@reinierpost OP 使用 PHP 示例来指定他对“翻译”感兴趣的拉丁文和西里尔文字符