【问题标题】:preg_replace Ñ with correct character [duplicate]preg_replace Ñ 用正确的字符[重复]
【发布时间】:2012-12-25 01:51:21
【问题描述】:

我正在尝试替换 preg_replace 中 Ñ 的值。 我有这个代码:

<?php
$name = 'AVENDAÑO, PAULVIC T.';
$match = preg_replace('/[^A-Z]/','N',$name);

echo '<pre>';
print_r($match);
echo '</pre>';
?>

虽然变量 $name 包含 AVENDAÑO, PAULVIC T。但它仍然显示 AVENDAÑO, PAULVIC T。

但是当我尝试使用上面的代码时,它会将所有非字符替换为 N。

我知道我的正则表达式有问题,或者有人知道解决这些字符格式问题的替代方法吗?

【问题讨论】:

    标签: php regex preg-replace


    【解决方案1】:

    请改用 str_replace。

    <?php
    $name = 'AVENDAÑO, PAULVIC T.';
    $match = str_replace('Ñ','N',$name);
    
    echo $match;
    ?>
    

    【讨论】:

    • 您认为还有办法在屏幕上正确显示Ñ吗?假设我想要 str_replace('Ñ','Ñ',$name);
    • 如果这是在网页中,请检查使用的代码页是否正确。 UTF-8 可能是您想要使用的:&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt; 应该对其进行排序。如果它在 shell 会话中,请检查那里的代码页。
    【解决方案2】:

    最好的方法是使用iconvhttp://php.net/manual/en/function.iconv.php

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

    【讨论】:

    • 这个结果是 AVENDA~NO, PAULVIC T.
    • 不太清楚第一个/第二个参数应该是什么,查看PHP文档以获得更好的信息,我很少使用这个功能,但它是最好用的,因为你需要写几百个str_replace () 每个特殊字符 :)
    猜你喜欢
    • 2012-04-16
    • 1970-01-01
    • 2020-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-19
    相关资源
    最近更新 更多