ckl*_*uss 5 string r icu stringi
有一种简单的方法可以将拉丁字母转换为希腊字母,使用stringiR 的包,它依赖于ICU的音译器:
library(stringi)
stri_trans_general("abcd", "latin-greek")
Run Code Online (Sandbox Code Playgroud)
是否有类似的简单方法将拉丁语转换为古希腊语(αβγδ)而不是希腊语(ἀβκδ)?
现代和古希腊字母之间没有真正的区别。也许最大的一个是古希腊字母表没有小写字母。因此 \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
有不同的音译标准,例如 ISO 843 和 UN(请参阅此处和此处)。c可以音译为“\xce\xba”或“\xcf\x83”,选择前者。
由于 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"\nRun Code Online (Sandbox Code Playgroud)\n希望这对您有帮助,
\n亚历克斯(或 \xce\xac\xce\xbb\xce\xb5\xce\xbe)
\n