【发布时间】:2018-02-05 13:52:42
【问题描述】:
有没有办法转换如下字符:
É É é à Ç etc
还有这种感叹号,后面有空格:
!
到他们的正常版本。目前我有这样的代码:
$linesvalue = str_replace(["Ç","ç"],"ç",$linesvalue);
$linesvalue = str_replace(["É","É","é"],"é",$linesvalue);
$linesvalue = str_replace("è","è",$linesvalue);
$linesvalue = str_replace("à","à",$linesvalue);
$linesvalue = str_replace("â","â",$linesvalue);
$linesvalue = str_replace("ê","ê",$linesvalue);
它们看起来像是在用相同的东西替换,但它们肯定不是。无论如何,这还不错,但是当我尝试替换感叹号(!)时,我发现它似乎也替换了一些重音字符,例如 ü 等。
有没有办法提前将整个文本转换为所有标准字符?
【问题讨论】:
-
您这样做是因为如果您不这样做,它们会以某种方式损坏吗?
-
使用normalization form C 来规范化重音等组合标记。表格 KC 应额外将全角字符(如 U+FF01)转换为标准版本。
-
这听起来很有趣 - 你想把这个作为答案发布吗?不太确定它是如何从您提供的链接中实现的。
标签: php unicode encoding character-encoding unicode-normalization