Php preg_用正确的字符替换
我试图替换preg_replace中的值。 我有以下代码:Php preg_用正确的字符替换,php,regex,preg-replace,Php,Regex,Preg Replace,我试图替换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 但是当我尝试使用上面的代码
<?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
我知道我的正则表达式有问题,或者有人知道解决这些字符格式问题的方法吗?最好的方法是使用iconv
最好的方法是使用iconv
使用str_替换
使用str_替换
这将导致AVENDA~NO,PAULVIC T。不太确定第一个/第二个参数应该是什么,请查看PHP文档以了解更多信息,我很少使用此功能,但最好使用它,因为您需要为每个特殊字符编写几百个str_替换:这将导致AVENDA~NO,PAULVIC T.不太确定第一个/第二个参数应该是什么,请查看PHP文档以获得更好的信息,我很少使用此功能,但它是最好的使用方法,因为您需要为每个特殊字符编写几百个stru_替换:您认为仍然有一种方法可以在屏幕上正确显示ñ吗?假设我想用str_替换'ñ','ñ',$name;如果这是在网页中,请检查所使用的代码页是否正确。UTF-8可能是您想要使用的:应该对其进行分类。如果它在shell会话中,也检查那里的代码页。您认为还有一种方法可以正确地在屏幕上显示吗?假设我想用str_替换'ñ','ñ',$name;如果这是在网页中,请检查所使用的代码页是否正确。UTF-8可能是您想要使用的:应该对其进行分类。如果它在shell会话中,也检查那里的代码页。
echo iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $name);
<?php
$name = 'AVENDAÑO, PAULVIC T.';
$match = str_replace('Ñ','N',$name);
echo $match;
?>