【问题标题】:Replace worldwide diacritics characters [duplicate]替换全球变音符号[重复]
【发布时间】:2011-07-03 15:28:54
【问题描述】:

可能重复:
PHP: Replace umlauts with closest 7-bit ASCII equivalent in an UTF-8 string

我想用他的非变音符号兄弟替换变音符号字符。 例如:从“guľôčka”我想得到“gulocka”

这里有一些本机功能吗?

我正在寻找用 str_replace 替换的所有全球变音符号列表。没找到。

非常感谢。

【问题讨论】:

    标签: php diacritics


    【解决方案1】:

    您可以通过使用iconvavailable in PHP 并通过音译请求编码转换来实现此目的。 (这实际上适用于许多不同的脚本!)如果您只想要基本的欧洲字符,请将目标设为 Latin-1,甚至 ASCII。

    来自manual page

    iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text)
    

    【讨论】:

    • 感谢您的回答。此代码将返回“gulôcka” - 它不会替换 ô。作为目标,我尝试了 Latin-1、ASCII 和 ISO-8859-1。
    • 你能用原始十六进制打印结果吗?重音是一个单独的字节吗?如果是这样,您可以对结果运行正则表达式并去除非字母数字。
    • `$text = 'guľôčka'; $iso = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text); var_dump(strlen($iso)); //int(7)´ 所以我认为,它是 1 个字节。我不想剥离,我需要更换。
    • @Peter:不要针对 ISO-8859-1,而是使用真正的 7 位 ASCII 编码!
    • @Peter:你去 - 现在只需运行一个正则表达式来筛选出非字母字符!
    猜你喜欢
    • 2011-02-03
    • 2010-09-27
    • 2011-11-20
    • 2021-09-02
    • 2010-10-26
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多