【问题标题】:UTF-8 not working on my web system (php, mysql)UTF-8 在我的网络系统(php、mysql)上不起作用
【发布时间】:2014-02-15 23:50:42
【问题描述】:

我已经阅读了很多关于 utf8 的内容,所以在我的网络系统上,我在数据库(表和排序)、PDO 连接、每个带有 header('Content-Type: text/html; charset) 的页面上设置了 UTF8 =utf-8');我还用“UTF8 without BOM”保存了我的文件。

所以,这是我的问题:我从数据库“$row['palabra']”中得到一个词,如果我打印该变量,则输出为“árbitro”(我也使用 mb_detect_encoding php 函数来检查,并且是 UTF8),但是如果我想使用该变量中的一个字母,例如:“$row['palabra'][1]”(我不知道为什么索引不从 0 开始)我得到这个符号是因为字母“a”有重音:�。为什么?

ps:我需要使用这个字符串中的一些字母比较来在我的系统上做其他事情。

【问题讨论】:

  • "我不知道为什么索引不是从 0 开始"
  • 字符串函数和[] 在字符串上的使用在字节级而不是字符级工作;你需要使用mb_*函数
  • 谢谢@MarkBaker 我不知道。

标签: php mysql encoding utf-8 pdo


【解决方案1】:

试试mb_substr():

echo mb_substr($row['palabra'],0,1); //output: á

【讨论】:

  • 我还有一个 ... ps:在“行”中添加一个 $ ;)
  • 我添加了“编码”参数,现在可以使用:mb_substr($row['palabra'],0,1,'utf-8') 谢谢!
猜你喜欢
  • 2011-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-06
  • 1970-01-01
  • 1970-01-01
  • 2017-04-17
  • 2012-03-11
相关资源
最近更新 更多