首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP字符串数组UTF-8编码失败

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

Stack Overflow用户
提问于 2013-08-12 12:50:58
回答 4查看 258关注 0票数 0

一切都设置为UTF-8 (文件编码,MySQL,但是我不使用它,Apache,meta,mbstring等等)但是看看这个:

代码语言:javascript
复制
$s="áéőúöüóűí";
echo $s; //works perfectly

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

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-08-12 12:54:33

这是绝对正确的行为。

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

代码语言:javascript
复制
mb_internal_encoding("UTF-8");
echo mb_substr($s,0,1);
票数 3
EN

Stack Overflow用户

发布于 2013-08-12 12:54:15

应该对多字节字符串使用*函数。substr()在你的案子里。

票数 2
EN

Stack Overflow用户

发布于 2013-08-12 12:57:16

如果你定义$s="á",它会起作用吗?我相信,当编码在UTF-8,这些特殊的字符存储在两个UTF-字符.

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

您可以看到,á变成了圣保罗,因此呈现第一个字符($s)只能显示“圣保罗”,这是一个不完整的字符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18187480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档