gpt4 book ai didi

php - 将 2 个不同种类的相似德语字符转换为 PHP 中的相同 ASCII 字符串

转载 作者:行者123 更新时间:2023-12-02 06:53:29 26 4
gpt4 key购买 nike

我有这两个字符串:

$str1 = 'Ö';
$str2 = 'Ö';
$e1 = mb_detect_encoding($str1);
$e2 = mb_detect_encoding($str2);
var_dump($str1);
var_dump($str2);
echo 'e1: '.$e1.', e2: '.$e2;

结果是:

string(3) "Ö"
string(2) "Ö"
e1: UTF-8, e2: UTF-8

看来它们不仅是德文字符,而且每个字符都不相同,因此将它们转换为 ASCII 以这种方式

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

不会产生相同的结果。有没有办法将这两个字符串转换为这些 ASCII 形式之一 BNOEBNO


我知道也许我可以从两者复制 Ö 并将其包含在 strtr 搜索和替换数组中,但我不知道如何重现所有以与第一个 Ö 相同的方式编码的字符。

最佳答案

这是在 Unicode 中表达同一个字母的两种不同形式;一个是 O 与组合 diereses 的组合,另一个是字母 Ö。 Unicode allows either variant to express "Ö".

要将其规范化为您首选的变体,请使用 Normalizer::normalize :

$str = Normalizer::normalize('Ö', Normalizer::FORM_C);

您可能需要形式 C,它将收敛于“Ö”(单字母形式)。如果您更喜欢“O”+ 组合二重音,请改用表格 D。

关于php - 将 2 个不同种类的相似德语字符转换为 PHP 中的相同 ASCII 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37021985/

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