我使用以下代码作为示例
$locale = 'cy_GB';
setlocale ( LC_MONETARY , $locale );
$conv = localeconv();
$currencyRateSymbol = $conv['int_curr_symbol'];
var_dump($currencyRateSymbol);
问题是我在寻找string '�' (length=1)
£
我使用的每个语言环境都会发生这种情况,包括泰铢,英镑和欧元。 我做错了什么?
答案 0 :(得分:3)
length=1
表示它长一个字节。 “ ”表示您尝试将其显示为Unicode,并且Unicode解码器无法正确解码此字节。以UTF-8编码的£符号是两个字节。
...人体工程学
£符号不是用UTF-8编码的,但你试图将其解码为UTF-8,因此它失败了。
如果系统上存在UTF-8版本的区域设置(例如cy_GB.UTF-8
),或者为尝试显示此版本的客户端指定正确的编码(可能是ISO-8859-1)。