キリル文字をラテン文字に変換
ソチ冬季五輪が始まります。開会式は明日2月7日ですが競技は既に始まっているそうです。
ソチは黒海の畔にある街でロシア語では「Сочи」と表記されます。アルファベットの一種でキリル文字と呼ぶそうです。
英語のアルファベットはラテン文字です。
下に対比表を示します。
С→S
о→o
ч→ch
и→i
このように変換できるので英語では「Sochi」と表記されます。
JavaScriptで変換する関数を作ってみました。Text2Whatで試せます。
cyrillic2latin
function cyrillic2latin(text) {
var cyrillic, latin, cyrillic_length, i, re;
cyrillic = ["А", "Б", "В", "Г", "Д", "Е", "Ё", "Ж", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь", "Э", "Ю", "Я", "а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ъ", "ы", "ь", "э", "ю", "я"];
latin = ["A", "B", "V", "G", "D", "Je", "Jo", "Zh", "Z", "I", "J", "K", "L", "M", "N", "O", "P", "R", "S", "T", "U", "F", "X", "C", "Ch", "Sh", "Q", "", "Y", "", "E", "Ju", "Ja", "a", "b", "v", "g", "d", "je", "jo", "zh", "z", "i", "j", "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "x", "c", "ch", "sh", "q", "", "y", "", "e", "ju", "ja"];
cyrillic_length = cyrillic.length;
for (i = 0; i < cyrillic_length; i++) {
re = new RegExp(cyrillic[i], "g");
text = text.replace(re, latin[i]);
}
return text;
}
var cyrillic, latin, cyrillic_length, i, re;
cyrillic = ["А", "Б", "В", "Г", "Д", "Е", "Ё", "Ж", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь", "Э", "Ю", "Я", "а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ъ", "ы", "ь", "э", "ю", "я"];
latin = ["A", "B", "V", "G", "D", "Je", "Jo", "Zh", "Z", "I", "J", "K", "L", "M", "N", "O", "P", "R", "S", "T", "U", "F", "X", "C", "Ch", "Sh", "Q", "", "Y", "", "E", "Ju", "Ja", "a", "b", "v", "g", "d", "je", "jo", "zh", "z", "i", "j", "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "x", "c", "ch", "sh", "q", "", "y", "", "e", "ju", "ja"];
cyrillic_length = cyrillic.length;
for (i = 0; i < cyrillic_length; i++) {
re = new RegExp(cyrillic[i], "g");
text = text.replace(re, latin[i]);
}
return text;
}
対比表
大文字 | 小文字 | ||
---|---|---|---|
キリル文字 | ラテン文字 | キリル文字 | ラテン文字 |
А | A | а | a |
Б | B | б | b |
В | V | в | v |
Г | G | г | g |
Д | D | д | d |
Е | Je | е | je |
Ё | Jo | ё | jo |
Ж | Zh | ж | zh |
З | Z | з | z |
И | I | и | i |
Й | J | й | j |
К | K | к | k |
Л | L | л | l |
М | M | м | m |
Н | N | н | n |
О | O | о | o |
П | P | п | p |
Р | R | р | r |
С | S | с | s |
Т | T | т | t |
У | U | у | u |
Ф | F | ф | f |
Х | X | х | x |
Ц | C | ц | c |
Ч | Ch | ч | ch |
Ш | Sh | ш | sh |
Щ | Q | щ | q |
Ъ | 分離記号 | ъ | 分離記号 |
Ы | Y | ы | y |
Ь | 軟音記号 | ь | 軟音記号 |
Э | E | э | e |
Ю | Ju | ю | ju |
Я | Ja | я | ja |
[ 2014年2月6日 | カテゴリー: JavaScript | タグ: Text2What , ソチ ]
« Excelでパスワードなしで上書き保存するマクロ | 意外にまだまだdocomoが強い »
コメントを残す