gpt4 book ai didi

php - 用 Umlaute 替换德语字符到简单的拉丁字符 php

转载 作者:行者123 更新时间:2023-12-04 03:15:25 24 4
gpt4 key购买 nike

我正在使用带有简单直接代码的 symfony,试图将任何特殊字符(如 ä Ä ö Ö ü Ü)更改为 a A o O u U。我尝试了所有我能找到的方法

归一化器

echo \Normalizer::normalize("ä");

htmlspecialchars
echo htmlspecialchars("ä");

和其他一些类似的解决方案,这些解决方案在网上找到,但它们都不适合我,都会输出
ä

并不是
a

不仅是 ä,还有我之前提到的所有其他字符。

我究竟做错了什么 ?或者有没有其他解决方案可以做到这一点。

最佳答案

这种替换是错误的,因为它会产生错误的单词(相当多的德语单词仅因存在变音而有所不同......你甚至可以获得一些 NSFW 结果......)。有替换变音符号的标准官方规则:

  • ä → ae
  • ö → oe
  • ü → ue
  • Ä → Ae
  • Ö → Oe
  • Ü → Ue
  • ß → ss(或 SZ 表示资本)

  • 您的示例中的 Normalizer::normalize (normalizer_normalize) 最初来自 java,在 PHP 中它仅支持特定版本。您是否意识到您在脚本代码中输入了 Unicode 字符?手册中有示例:
    <?php
    $char_A_ring = "\xC3\x85"; // 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
    $char_combining_ring_above = "\xCC\x8A"; // 'COMBINING RING ABOVE' (U+030A)

    $char_1 = Normalizer::normalize( $char_A_ring, Normalizer::FORM_C );
    $char_2 = Normalizer::normalize( 'A' . $char_combining_ring_above, Normalizer::FORM_C );

    echo urlencode($char_1);
    echo ' ';
    echo urlencode($char_2);
    ?>

    (来自 http://php.net/manual/en/normalizer.normalize.php )

    关于php - 用 Umlaute 替换德语字符到简单的拉丁字符 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41475937/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com