我是php的初学者。我正在尝试打印包含字母“ñ”的变量,但它无法正确打印。它似乎是一个问号。但是在阵列中打印好了。为什么这样,我该如何解决?我的编纂是UTF-8,这是我的代码
<?php header('content-type:text/html;charset=utf-8');
$vowels = array('a', 'e', 'i', 'o', 'u');
$consonants = array('b','c','d','f','g','h','j','k','l','m','n','ñ','p','q','r','s','t','v','w','x','y','z');
$word = "wxyzñ";
echo $word;
echo "<br>" . $word[4] . " " . $consonants[11] ;
?>
即使没有标题,$ word也会打印出来,但是当试图获得单词中的唯一字符时它不起作用。在数组中,“ñ”打印正常。我试图将$ word变量转换为带有str_split的数组,但结果相同。我也尝试了html_entities,但结果相同。请帮忙。谢谢!
答案 0 :(得分:0)
UTF-8是一种多字节编码。这意味着一个字符可以由多个字节表示。 ñ
char实际上由两个字节组成:C3
和B1
。使用$word[4]
,您只能获得C3
,而C3
并不代表UTF-8中的任何内容(因此您的浏览器会打印问号)。你应该做的是一起检索两个字节。您可以使用mb_substr
。
$char = mb_substr($word, 4, 1);