我在PHP中遇到localeconv()
的问题。我正在使用Windows PC。
我使用setLocale(LC_ALL, 'fra_fra')
函数将我的语言环境设置为法国。然后我将localeconv()
函数调用为变量。当我输出该变量时,下面是我得到的。
Array
(
[decimal_point] => ,
[thousands_sep] => �
[int_curr_symbol] => EUR
[currency_symbol] => �
[mon_decimal_point] => ,
[mon_thousands_sep] => �
[positive_sign] =>
[negative_sign] => -
[int_frac_digits] => 2
[frac_digits] => 2
[p_cs_precedes] => 0
[p_sep_by_space] => 1
[n_cs_precedes] => 0
[n_sep_by_space] => 1
[p_sign_posn] => 1
[n_sign_posn] => 1
[grouping] => Array
(
[0] => 3
)
[mon_grouping] => Array
(
[0] => 3
)
)
我不确定它是否是UTF-8显示问题。我做了以下事情:
header('Content-type: text/html; charset=utf-8')
AddDefaultCharset
更新了我的http.conf文件,但仍然没有雪茄我完全难过,不知道接下来要做什么。
任何人都可以帮忙吗?
感谢。
答案 0 :(得分:2)
我认为,您的输出不 UTF-8。尝试在大多数* nix系统上使用UTF-8-locale,例如fr_fr.UTF-8
或fr_fr.utf8
。
顺便问一下:你确定fra_fra
- 语言环境吗?法语不应该是fr_fr
吗?
答案 1 :(得分:1)
我终于让它工作,即显示正确的字符。
请执行以下操作(请注意,这适用于Windows):
iconv('Windows-1252', 'UTF-8', $locale_conv_arr['currency_symbol']);
其中$locale_conv_arr
表示我先前在我的问题中定义的数组。
感谢Stefan Gehrig的指导。
干杯。
答案 2 :(得分:0)
有一个名为“intl”的PHP扩展,它在不使用操作系统功能的情况下提供语言环境信息:它使用UTF-8专属afaics,避免了这个问题。
http://www.php.net/manual/en/book.intl.php
由于这是我在寻求帮助时出现的问题,我想确保有链接...