PHP字符串数组UTF-8编码失败

PHP字符串数组UTF-8编码失败,php,apache2,Php,Apache2,所有内容都设置为UTF-8(文件编码、MySQL[但我不使用)、Apache、meta、mbstring等),但请查看以下内容: $s="áéőúöüóűí"; echo $s; //works perfectly echo $s[0] // doesn't work. Prints out a single '?'. 我几乎什么都试过了。有什么想法吗?提前谢谢 应该对多字节字符串使用函数。在您的情况下。您应该对多字节字符串使用函数。就你而言。这是绝对正确的行为 如果要从多字节字符串中获取第

所有内容都设置为UTF-8(文件编码、MySQL[但我不使用)、Apache、meta、mbstring等),但请查看以下内容:

$s="áéőúöüóűí";
echo $s; //works perfectly

echo $s[0] // doesn't work. Prints out a single '?'.

我几乎什么都试过了。有什么想法吗?提前谢谢

应该对多字节字符串使用函数。在您的情况下。

您应该对多字节字符串使用函数。就你而言。

这是绝对正确的行为

如果要从多字节字符串中获取第一个字母,而不是从二进制字符串中获取第一个字节,则必须使用:


这是绝对正确的行为

如果要从多字节字符串中获取第一个字母,而不是从二进制字符串中获取第一个字节,则必须使用:

如果你定义$s[0]=“á”,它能工作吗?我相信在UTF-8中编码时,这些特殊字符存储在两个UTF字符上

如果在ANSI中显示一些UTF-8文本,则呈现如下: Ã

你看那变成了Ã 因此,呈现第一个字符($s[0])只会显示“Ã…”,这是一个不完整的字符

,如果您定义$s[0]=“á”,它会工作吗?我相信在UTF-8中编码时,这些特殊字符存储在两个UTF字符上

如果在ANSI中显示一些UTF-8文本,则呈现如下: Ã

你看那变成了Ã
因此,呈现第一个字符($s[0])只会显示“í”,这是一个不完整的字符

您必须在数据库中进行一些更改,然后转到表结构

您可以找到“排序规则”列

要更改哪一列,请单击右侧菜单上的“编辑”


默认排序规则为-'latin1\u general\u ci'将其更改为'utf8\u general\u ci'

您必须在数据库中进行一些更改,然后转到表结构

您可以找到“排序规则”列

要更改哪一列,请单击右侧菜单上的“编辑”


当我定义$s[0]=“á”时,默认排序规则是-'latin1\u general\u ci'将其更改为'utf8\u general\u ci'

;和echo$s[0];它工作得非常完美,但无论我做什么,我都不会得到任何Ã或奇怪的字符;和echo$s[0];它工作得很完美,但无论我做什么,我都不会得到任何“或”奇怪的字符。还有其他方法吗?到底是什么原因造成的?也许是一个新的PHP版本,因为这最近不是一个问题?其他的方法是什么?为什么?你现在有什么问题?我已经写了一个CMS系统,它不能处理这个问题。。。如果我要重写所有的代码,这将是一个巨大的问题。你真的在所有代码中不止一次或两次使用这种愚蠢的语法糖吗?我简直不敢相信。你用它的目的是什么?还有别的方法吗?到底是什么原因造成的?也许是一个新的PHP版本,因为这最近不是一个问题?其他的方法是什么?为什么?你现在有什么问题?我已经写了一个CMS系统,它不能处理这个问题。。。如果我要重写所有的代码,这将是一个巨大的问题。你真的在所有代码中不止一次或两次使用这种愚蠢的语法糖吗?我简直不敢相信。你用它的目的是什么?
mb_internal_encoding("UTF-8");
echo mb_substr($s,0,1);