我喜欢匹配一些特定的UTF8字符。就我而言,德国的变形金刚。这是我们的示例代码:
{UTF-8 file}
<?php
$search = 'ä,ö,ü';
$replace = 'ae,oe,ue';
$string = str_replace(explode(',', $search), explode(',', $replace), $string);
?>
此代码为UTF-8。现在,我想确保这将独立于(大多数)使用的代码字符集。
这是我应该去的方式(used UTF-8 check)吗?
{ISO file}
<?php
$search = 'ä,ö,ü';
$search = preg_match('~~u', $search) ? $search : utf8_encode($search);
$replace = 'ae,oe,ue';
$string = str_replace(explode(',', $search), explode(',', $replace), $string);
?>
答案 0 :(得分:1)
utf8_encode
无法保证解决您的问题。要100%不知道您的源代码文件的编码,请将您的字符表示为原始字节:
$search = "\xC3\xA4,\xC3\xB6,\xC3\xBC"; // ä, ö and ü in UTF-8
请注意,这仍然不能保证编码$string
将在哪里,您需要分别知道和/或控制其编码与此问题分开。在某些时候,你只需要确定你使用过的编码,你就不能完全了解它。