[英]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.