gpt4 book ai didi

php - 使用 PHP 将网页中的重音符号从 MySQL 转换为无重音符号

转载 作者:行者123 更新时间:2023-11-29 11:47:54 25 4
gpt4 key购买 nike

我目前正试图将“Kévin”等名称转换为“Kevin”,然后再转换为“KEVIN”。

当前数据库设置为 Latin1_swedish_ci。如果名称来自 MySQL,则不起作用,我不知道为什么。我已经尝试将 latin1 更改为 utf8_general_ci 但没有任何变化。

名字 Kévin 在 MySQL 中写入为“Kévin”。

正在使用的功能:

function strToNoAccent($var) {
$var = str_replace(
array(
'à', 'â', 'ä', 'á', 'ã', 'å',
'î', 'ï', 'ì', 'í',
'ô', 'ö', 'ò', 'ó', 'õ', 'ø',
'ù', 'û', 'ü', 'ú',
'é', 'è', 'ê', 'ë',
'ç', 'ÿ', 'ñ',
'À', 'Â', 'Ä', 'Á', 'Ã', 'Å',
'Î', 'Ï', 'Ì', 'Í',
'Ô', 'Ö', 'Ò', 'Ó', 'Õ', 'Ø',
'Ù', 'Û', 'Ü', 'Ú',
'É', 'È', 'Ê', 'Ë',
'Ç', 'Ÿ', 'Ñ',
),
array(
'a', 'a', 'a', 'a', 'a', 'a',
'i', 'i', 'i', 'i',
'o', 'o', 'o', 'o', 'o', 'o',
'u', 'u', 'u', 'u',
'e', 'e', 'e', 'e',
'c', 'y', 'n',
'A', 'A', 'A', 'A', 'A', 'A',
'I', 'I', 'I', 'I',
'O', 'O', 'O', 'O', 'O', 'O',
'U', 'U', 'U', 'U',
'E', 'E', 'E', 'E',
'C', 'Y', 'N',
),$var);
return $var;
}

代码运行:

$name = "Kévin";
$name = strToNoAccent($name);
$name = strtoupper($name);
echo $name; // Result is KEVIN

代码因未知原因而无法工作:

$chresult=mysql_query("SELECT * FROM personnel");

$y=0;
while ($y < mysql_num_rows($chresult)) {
$name = mysql_result($chresult, $y, 'name');

$name = strToNoAccent($name);
$name = strtoupper($name);
echo $name; // Result is KÉVIN

$y++;
}

最佳答案

看起来像是编码问题。您尝试过使用 iconv 吗?喜欢:

$name = iconv('UTF-8', 'ASCII//TRANSLIT', $name);

查看:https://stackoverflow.com/a/3542748/2761700 & How do I remove accents from characters in a PHP string?

更新:也使用utf8_encode。完整代码:

$chresult=mysql_query("SELECT * FROM personnel");
$y=0;
while ($y < mysql_num_rows($chresult)) {
$name = utf8_encode(mysql_result($chresult, $y, 'name'));
$name = iconv('UTF-8', 'ASCII//TRANSLIT', $name);
$name = strtoupper($name);
echo $name;
$y++;
}

关于php - 使用 PHP 将网页中的重音符号从 MySQL 转换为无重音符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34595216/

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