php - 如何使用php获取包含特殊字符的字符串的第一个字符?

标签 php string character special-characters

我使用 string[0] 来缩短和显示用户名/姓氏的第一个字符。在用户名以 ö、ä、ü 等特殊字符开头之前,它一直很有效。

例如:

$name = 'über';
echo $name[0];
// echoes nothing

与此同时,我正在使用 mb_substr($string, 0, 1)。但我真的很想念 $name[0] :)。它更快更短。我仍然想知道原因是什么,是否有办法将这种语法与特殊字符一起使用。

最佳答案

字符 ü 不是单字节字符。它是一个多字节(两个字节)的字符。

char

您正试图访问字符串的第一个字节,因此它不起作用。正是出于这个原因,设计了 mb_substr

Performs a multi-byte safe substr() operation based on number of characters. Position is counted from the beginning of str. First character's position is 0. Second character position is 1, and so on.

如果您只是尝试执行 $name[0],它会获取多字节字符的第一个字符,它只是一个空字符串或一个控制字符以显示 ..u 之上。 (举个例子,比如 .. + u = ü)。

关于php - 如何使用php获取包含特殊字符的字符串的第一个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40893431/

相关文章:

php - 使用 PDO 更改 mysql_ 函数

java - 用indexof解析短语,然后获取单词的开头

c++ - 将utf8编码的字符串转换为本地8位编码的字符串,并用空格替换不可转换的字符

string - Excel VBA - 从单元格中删除单个字符而不丢失剩余单元格内容的格式

java - 字符更改时拆分字符串。可能的正则表达式解决方案?

php - php获取mysql将非拉丁字符变成问号 "?"

php - 200k 页面网站的网站搜索

PHP 和 MySQL - 高效处理多个一对多关系

php - 如何使用 magento 上的自定义集合更改特定类别的页面大小

Python - 如何用另一个列表中的字符串值替换存储在列表中的字符串值?