ID:               44041
 Updated by:       [EMAIL PROTECTED]
 Reported By:      trickie at gmail dot com
-Status:           Open
+Status:           Wont fix
 Bug Type:         *General Issues
 Operating System: Gentoo Linux
 PHP Version:      5.2.5
 New Comment:

The "garbage" you get is a non-breaking space in UTF-8. You can always
use utf_decode() on it:

<?php
if (false !== setlocale(LC_ALL, 'lv_LV.UTF-8')) {
    $locale_info = localeconv();
    echo number_format(20000,0,$locale_info['decimal_point'],
utf8_decode($locale_info['thousands_sep']));
}
?>

Since unicode support is coming in PHP6 and will not be addressed
before, this is "wont fix" in earlier versions.

I suggest you really don't use setlocale() if you want to use UTF-8.
At least not for numbers.



Previous Comments:
------------------------------------------------------------------------

[2008-02-05 07:31:30] trickie at gmail dot com

Output requested:

array(18) {
  ["decimal_point"]=>
  string(1) ","
  ["thousands_sep"]=>
  string(2) "&#65533;&#65533;"
  ["int_curr_symbol"]=>
  string(4) "LVL "
  ["currency_symbol"]=>
  string(2) "Ls"
  ["mon_decimal_point"]=>
  string(1) ","
  ["mon_thousands_sep"]=>
  string(2) "&#65533;&#65533;"
  ["positive_sign"]=>
  string(0) ""
  ["negative_sign"]=>
  string(1) "-"
  ["int_frac_digits"]=>
  int(2)
  ["frac_digits"]=>
  int(2)
  ["p_cs_precedes"]=>
  int(1)
  ["p_sep_by_space"]=>
  int(1)
  ["n_cs_precedes"]=>
  int(1)
  ["n_sep_by_space"]=>
  int(1)
  ["p_sign_posn"]=>
  int(3)
  ["n_sign_posn"]=>
  int(3)
  ["grouping"]=>
  array(2) {
    [0]=>
    int(3)
    [1]=>
    int(3)
  }
  ["mon_grouping"]=>
  array(2) {
    [0]=>
    int(3)
    [1]=>
    int(3)
  }
}

------------------------------------------------------------------------

[2008-02-05 05:09:48] [EMAIL PROTECTED]

What does this output:

<?php
if (false !== setlocale(LC_ALL, 'lv_LV.UTF-8')) {
  $locale_info = localeconv();
  var_dump($locale_info);
}
?>

------------------------------------------------------------------------

[2008-02-04 15:18:20] trickie at gmail dot com

Description:
------------
If you set the locale to 'lv_LV.UTF-8' and have the locale generated on
your system, then the code below will return garbage as the 'thousands
separator'. It displays ok for me when running with CLI SAPI

Reproduce code:
---------------
<?php
if (false !== setlocale(LC_ALL, 'lv_LV.UTF-8')) {
    $locale_info = localeconv();
    echo number_format(20000,0,$locale_info['decimal_point'],
$locale_info['thousands_sep']);
}
?>


Expected result:
----------------
20 000

Actual result:
--------------
20&#65533;000


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=44041&edit=1

Reply via email to