php不懂元(CNY)符号来代替

时间:2014-12-16 09:22:49

标签: php apache utf-8 currency

我有以下代码,用于规范化服务器上​​的文件名:

private static function normalize($name,$currency) {
    $currencies = array('$', '元', '€');
    preg_match("/([\S]+)(\.\w+(?=$))/", $name, $matches);
    VarDumper::dump($matches); echo '<br>';
    $name = strtolower($matches[1]);
    $ext = strtolower($matches[2]);
    $name = str_replace($currencies, '-' . $currency . '-', $name);
    VarDumper::dump($name); echo '<br>';
    $name = preg_replace("/[^a-zA-Z\-\d]+/", "-", $name);
    $name = preg_replace("/\-+/", "-", $name);
    $name = strtolower($name);
    $name = trim($name, ' ,-');
    $name = $name . $ext;

    return $name;
}

第一个转储显示在字符串后面:

  

1988-1盎司 - 金 - 中国-熊猫100hEG-贵金属-投币式.999-24K-REV

第二个转储显示了这个:

  

1988-1盎司 - 金 - 中国-熊猫100heg金条-硬币.999-24k-REV

在localhost上,所有工作正常,CNY char显示正确,但在dev服务器字符串上面如上所示。

http服务器:启用了httpd.conf的Apache 2.2,AddDefaultCharset utf-8。

有人可以建议解决这个问题吗?

0 个答案:

没有答案