使用PHP获取货币符号

时间:2012-11-02 15:22:50

标签: php character-encoding locale currency

我使用以下代码作为示例

$locale = 'cy_GB';
setlocale ( LC_MONETARY  , $locale );
$conv = localeconv();           
$currencyRateSymbol = $conv['int_curr_symbol'];
var_dump($currencyRateSymbol);

问题是我在寻找string '�' (length=1)

时收到£

我使用的每个语言环境都会发生这种情况,包括泰铢,英镑和欧元。 我做错了什么?

1 个答案:

答案 0 :(得分:3)

length=1表示它长一个字节。 “ ”表示您尝试将其显示为Unicode,并且Unicode解码器无法正确解码此字节。以UTF-8编码的£符号是两个字节。

...人体工程学

£符号不是用UTF-8编码的,但你试图将其解码为UTF-8,因此它失败了。

如果系统上存在UTF-8版本的区域设置(例如cy_GB.UTF-8),或者为尝试显示此版本的客户端指定正确的编码(可能是ISO-8859-1)。