1

私は走っPHPていwindows vistaます。それで、ロケール関数がどのように機能するかを知りたいと思っています。私はから始めました

setlocale(LC_ALL, $locale)localeconv()

最初は、「en_US」、「en_UK」などのCLDRロケールID(PHPロケールの学習を始めたと思います)で動作し、PHPドキュメントの例で示されているようになりました。しかし、今setlocale()では Windows ベースのロケール ID であると思われるおよびのような値でlocaleconv()のみ機能します。$locale"English_United Kingdom.1252""English_United States.1252"

だから私がするとき:

var_dump(setlocale(LC_ALL, "en_US"));
var_dump(localeconv());

次の結果が得られます。

boolean false

array (size=18)
  'decimal_point' => string '.' (length=1)
  'thousands_sep' => string '' (length=0)
  'int_curr_symbol' => string '' (length=0)
  'currency_symbol' => string '' (length=0)
  'mon_decimal_point' => string '' (length=0)
  'mon_thousands_sep' => string '' (length=0)
  'positive_sign' => string '' (length=0)
  'negative_sign' => string '' (length=0)
  'int_frac_digits' => int 127
  'frac_digits' => int 127
  'p_cs_precedes' => int 127
  'p_sep_by_space' => int 127
  'n_cs_precedes' => int 127
  'n_sep_by_space' => int 127
  'p_sign_posn' => int 127
  'n_sign_posn' => int 127
  'grouping' => 
    array (size=0)
      empty
  'mon_grouping' => 
    array (size=0)
      empty

スクリプトを CLDR ロケール ID に応答させるにはどうすればよいですか?

4

2 に答える 2

1

あなたの場合、 setlocale() は false を返します。マニュアル:

新しい現在のロケールを返します。ロケール機能がプラットフォームに実装されていない場合は FALSE を返します。

「usa」、「america」、「united states」、「united-states」、または「us」のいずれかを使用してみてください。

http://msdn.microsoft.com/en-us/library/cdax410z%28v=vs.90%29.aspx

于 2014-02-14T07:57:43.977 に答える