将拉丁语音译为古希腊字母

ckl*_*uss 5 string r icu stringi

有一种简单的方法可以将拉丁字母转换为希腊字母,使用stringiR 的包,它依赖于ICU的音译器:

library(stringi)
stri_trans_general("abcd", "latin-greek")
Run Code Online (Sandbox Code Playgroud)

是否有类似的简单方法将拉丁语转换为古希腊语(αβγδ)而不是希腊语(ἀβκδ)?

alk*_*989 1

现代和古希腊字母之间没有真正的区别。也许最大的一个是古希腊字母表没有小写字母。因此 \xce\xb1\xce\xb2\xce\xb3\xce\xb4 和 \xe1\xbc\x80\xce\xb2\xce\xba\xce\xb4 都是现代希腊语(alpha 的重音可能是与发音有关,现代希腊语不再有它了)。

\n

现在,stri_trans_general要做的是在尝试考虑发音的同时进行音译:

\n
\n

可发音:如果该过程只是简单地映射字符而不考虑其发音,那么音译就没那么有用。简单地将“\xce\xb1\xce\xb2\xce\xb3\xce\xb4\xce\xb5\xce\xb6\xce\xb7\xce\xb8...”映射到“abcdefgh...”将产生以下字符串:可能是完整且明确的,但不能发音。(看这里

\n
\n

有不同的音译标准,例如 ISO 843 和 UN(请参阅此处此处)。c可以音译为“\xce\xba”或“\xcf\x83”,选择前者。

\n
\n

由于 SO 是关于编程的,如果您想制作自己的映射,这里有一些代码:

\n
## You have to complete the mapping\nmap <- data.frame(latin = c("a", "b", "c", "d", "e", "f", " "),\n                  greek = c("\xce\xb1", "\xce\xb2", "\xce\xb3", "\xce\xb4", "\xce\xb5", "\xcf\x86", " "),\n                  stringsAsFactors=FALSE)\n\nmapChars <- function(latin) {\n    a <- strsplit(latin, "")[[1]]\n    res <- sapply(a, function(x) map$greek[map$latin == x])\n    paste(res, sep="", collapse="")\n}\n\nmapChars("abcd")\n## [1] "\xce\xb1\xce\xb2\xce\xb3\xce\xb4"\n
Run Code Online (Sandbox Code Playgroud)\n

希望这对您有帮助,

\n

亚历克斯(或 \xce\xac\xce\xbb\xce\xb5\xce\xbe)

\n