0

这个问题似乎很平庸。我已经使用 PDO 和 PHP 的本机驱动程序连接到 SQLite 3 数据库,我正在尝试将值的第一个字母与我自定义的预定义字母数组进行比较,并且当我尝试访问字段的整个值时像这样:

<?= $row['naziv_opstine'];?>

我明白了

Žitorađa 

但是当我尝试将字符串作为数组访问或使用 substr 显示它时,如下所示:

<?= substr($row['naziv_opstine'],0,1);?>
<?= $row['naziv_opstine'][0];?>

我得到mojibake:

有谁知道可能是什么问题,DB和HTML都将编码设置为UTF-8?

4

1 回答 1

1

在 UTF8 中,Ž将占用多于一个字节(只有 Latin-1 字符是单字节)。

考虑使用mb_substr

<?= mb_substr($row['naziv_opstine'], 0, 1, 'UTF-8');?>
于 2013-11-08T11:33:01.577 回答