我从DB的UTF-8字符串,并试图以呼应其第一个字符:
$标题= $模型 - >标题; 回声$标题[0];
我得到:
怎么了? 谢谢!
我从DB的UTF-8字符串,并试图以呼应其第一个字符:
$标题= $模型 - >标题; 回声$标题[0];
我得到:
怎么了? 谢谢!
有你需要考虑几件事情:
心连心
$first_char = mb_substr($title, 0, 1);
你需要使用PHP的多字节字符串函数正确处理Unicode字符串:
http://www.php.net/manual/en/ref.mbstring.php
http://www.php.net/manual/en/function.mb-substr.php
您还需要在指定的字符编码<head>
HTML的:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
要么:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-16" />
正如先前在其他问题中提到,使用PHP,试图获取子的时候,它不理解多字节字符(如你用UTF8例如获得)。
有什么其他的答案不提的是,你应该提示的编码,你想用的mb_substr
因此,举例来说,我用这个:
mb_substr( "Sunday", 0, 1,'UTF8'); // Returns S
mb_substr( "воскресенье", 0, 1,'UTF8'); // Returns в
PHP字符串不明白默认字节字符串,像索引数组将印章的第一个字节,如果这种情况发生不是在你得到这个结果ASCII范围。
使用mb_substr方法。