我正在尝试检查字符串在PHP中是否以“€”或“£”开头。
以下是代码
$text = "€123";
if($text[0] == "€"){
echo "true";
}
else{
echo "false";
}
//output false
如果只检查一个字符,就可以正常工作
$symbol = "€";
if($symbol == "€"){
echo "true";
}
else{
echo "false";
}
// output true
我也尝试在浏览器上打印字符串。
$text = "€123";
echo $text; //display euro symbol correctly
echo $text[0] //get a question mark
我尝试使用substr()
,但是发生了同样的问题。
诸如“€”或“£”之类的字符是多字节字符。有一篇很棒的文章,您可以在这里阅读。根据PHP文档,PHP字符串是字节数组。因此,使用数组括号访问或修改字符串不是多字节安全的,并且仅应使用单字节编码的字符串(例如ISO-8859-1)来完成。
另外,请确保您的文件使用UTF-8编码:您可以使用文本编辑器(例如NotePad ++)进行转换。
如果我将PHP简化为此,它可以工作,关键是使用mb_substr:
<?php
header ('Content-type: text/html; charset=utf-8');
$text = "€123";
echo mb_substr($text,0,1,'UTF-8');
?>
最后,在您的head标签中添加UTF-8元标签是一个好主意:
<meta charset="utf-8">
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句