PHP Iconv 添加额外字符

标签 php utf-8 translation iconv

我正在尝试使用 iconv 从 PHP 中的某些文本中删除所有重音符号等。它会去除重音符号,但有时会添加额外的字符,例如: “Théâtre” 输出为 “Th'e^atre” 而我想要 “Theatre”

这是我的代码:

setlocale(LC_ALL, "fr_FR.utf8");
$text = "Théâtre";
$text = iconv("utf-8","ascii//TRANSLIT//IGNORE",$text);
echo $text;

结果:Th'e^atre

最佳答案

此错误可能是由于您的服务器上的 iconv() 实现错误造成的(glibc 而不是 libiconv,您可以检查一下在 phpinfo() 的输出中)。请参阅here了解更多详情。

您也可以尝试:

$text = "Théâtre";
$text = iconv("utf-8","ascii//TRANSLIT",$text); //$text = "Th'e^atre"
//Replace any character not in alphabet by an empty substring.
$text = preg_replace("#[^a-zA-z]#", "", $text); //$text = "Theatre"

echo $text;

关于PHP Iconv 添加额外字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47501779/

相关文章:

php - 在数据库表中没有行意味着出现错误 Undefined variable : results using codeigniter

google-chrome-extension - Chrome 说我的内容脚本不是 UTF-8

用于编辑 .resx 文件的 ASP.NET 组件

python - 是否可以使用 maketrans 将一个字符替换为两个字符?

php - 将 Wilson Score Confidence SQL 代码转换为 Codeigniter 事件记录

php - CodeIgniter - 通过单击按钮将值从 View 传递到 Controller

php - 将从 mysql 数据库收集的 SESSION 变量发布到新页面

php - 使用 PHP 搜索存储在 mySql 列中的数组的最快方法

mysql - 将有效的 4 字节 UTF-8 序列插入 MySQL 时出错

c# - C#中的UTF8字符串变量