PHP读取UTF-8字符串本国首字符乱码问题及解决
解决UTF-8多字节字符首字符读取乱码问题
问题场景
从UTF-8编码的TXT文件中读取包含本国特殊字符(如ęĘ、óÓ)的单词并存入数组,完整单词显示正常,但通过$str[0]方式读取单词首字符时出现�乱码。
问题原因
PHP中使用$str[0]访问字符串是按字节读取,仅适用于单字节的拉丁字母。而ę、ó这类本国字符属于UTF-8多字节字符(通常占2-4个字节),直接按字节拆分会破坏字符结构,导致乱码。
解决方案
使用PHP的多字节字符串扩展函数mb_substr(),指定编码为UTF-8来正确截取首字符:
$firstChar = mb_substr($file_info_01c_text, 0, 1, 'UTF-8'); // 之后用$firstChar和指定标签字符对比即可
内容的提问来源于stack exchange,提问作者tropiciel
相关产品推荐
相关产品推荐

