2

我以下面的代码为例

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

问题是string '�' (length=1)我在寻找时得到£

这发生在我使用的每个语言环境中,包括泰铢、英镑和欧元。我究竟做错了什么?

4

1 回答 1

3

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

尔格...

£ 符号未以 UTF-8 编码,但您试图将其解码为 UTF-8,因此它失败了。

如果系统上存在 UTF-8 版本的语言环境(例如cy_GB.UTF-8),请使用它,或者为尝试显示此内容的客户端指定正确的编码(可能是 ISO-8859-1)。

于 2012-11-02T15:27:18.057 回答