【发布时间】:2011-09-29 18:57:08
【问题描述】:
我得到的一些字符串是 UTF-8 编码的,并且包含一些特殊字符,例如
Å¡, Ä‘, Ä 等。我正在使用StringReplace() 将其转换为一些普通文本,但我只能转换一种类型的字符。因为 PHP 还有一个替换字符串的功能,如下所示:how to replace special characters with the ones they're based on in PHP?,但它支持数组:
<?php
$vOriginalString = "¿Dónde está el niño que vive aquí? En el témpano o en el iglú. ÁFRICA, MÉXICO, ÍNDICE, CANCIÓN y NÚMERO.";
$vSomeSpecialChars = array("á", "é", "í", "ó", "ú", "Á", "É", "Í", "Ó", "Ú", "ñ", "Ñ");
$vReplacementChars = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U", "n", "N");
$vReplacedString = str_replace($vSomeSpecialChars, $vReplacementChars, $vOriginalString);
echo $vReplacedString; // outputs '¿Donde esta el nino que vive aqui? En el tempano o en el iglu. AFRICA, MEXICO, INDICE, CANCION y NUMERO.'
?>
如何在 Delphi 中做到这一点? StringReplace 不支持数组。
【问题讨论】:
-
字符串是UTF-8编码的并且包含“特殊字符”?什么是“特殊字符”?也可以查看this answer——如果你可以访问
iconv。 -
如果你想要这个进行比较,那么在
dwCmpFlags中使用CompareString和至少NORM_IGNORENONSPACE。
标签: arrays delphi unicode normalization unicode-normalization