繁体   English   中英

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

[英]PHP string array UTF-8 encoding fails

一切都设置为UTF-8(文件编码,MySQL [不过我不使用它],Apache,meta,mbstring等...),但请检查以下内容:

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

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

我已经尝试了几乎所有东西。 有任何想法吗? 提前致谢!

这是绝对正确的行为。

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

mb_internal_encoding("UTF-8");
echo mb_substr($s,0,1);

您应该对多字节字符串使用mb_ *函数。 mb_substr()在您的情况下。

并且,如果您定义$ s [0] =“á”,是否可行? 我相信,当以UTF-8编码时,这些特殊字符存储在两个UTF字符上。

如果您在ANSI中显示一些UTF-8文本,则其呈现方式如下:á©oúöü¼³³uÃ

您会看到á变为Ã,因此渲染第一个字符($ s [0])仅显示“Ô,这是一个不完整的字符

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

您可以找到“整理”列

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

默认排序规则为-'latin1_general_ci'将其更改为'utf8_general_ci' 在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM