获取UTF-8字符串的第一个字符(Get first character of UTF-8 stri

2019-07-04 01:15发布

我从DB的UTF-8字符串,并试图以呼应其第一个字符:

$标题= $模型 - >标题; 回声$标题[0];

我得到:

怎么了? 谢谢!

Answer 1:

有你需要考虑几件事情:

  1. 检查在数据库中的数据被存储为UTF-8
  2. 检查客户端连接到数据库是UTF-8(例如,在mysql中看到: http://www.php.net/manual/en/mysqli.character-set-name.php )
  3. 确保页面都有它的内容类型设置为UTF-8,你可以使用标头(“内容类型:UTF-8”); ]
  4. 尝试设置内部编码,使用mb_internal_encoding( “UTF-8”);

心连心



Answer 2:

$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" />


Answer 3:

正如先前在其他问题中提到,使用PHP,试图获取子的时候,它不理解多字节字符(如你用UTF8例如获得)。

有什么其他的答案不提的是,你应该提示的编码,你想用的mb_substr

因此,举例来说,我用这个:

 mb_substr( "Sunday", 0, 1,'UTF8'); // Returns S
 mb_substr( "воскресенье", 0, 1,'UTF8'); // Returns в


Answer 4:

PHP字符串不明白默认字节字符串,像索引数组将印章的第一个字节,如果这种情况发生不是在你得到这个结果ASCII范围。

使用mb_substr方法。



文章来源: Get first character of UTF-8 string
标签: php yii