使用PHP解码unicode转义字符

时间:2014-08-08 08:10:19

标签: java php unicode encoding decoding

我有多个文本文件可以将应用程序翻译成不同的语言。这些文本文件来自Java应用程序,如下所示:

weather_501=m\u00E4ßiger Regen
weather_701=tr\u00FCb
weather_731=Sand / Staubsturm
weather_802=\u00FCberwiegend bew\u00F6lkt

我使用以下PHP函数加载此文件,$locale是输出的语言:

function loadTranslation($locale) {
    $this->_data = array();
    $localeFilePath = PATH_LANG . '/text/textTx_' . $locale . '/properties';

    if (file_exists($localeFilePath)) {
        $localeFileHandle = fopen($localeFilePath, "r");        
        while (($line = fgetcsv($localeFileHandle, 1000, "=")) !== FALSE) {
            $this->_data[$line[0]] = $line[1];
            print_r($line);
        }
        fclose($localeFileHandle);
    }
    else echo 'Error: localeFilePath does not exist: '.$localeFilePath.'<br/>';

    return $this;
}

现在的问题是UTF-8的unicode解码/编码。我已经尝试了几次尝试,但没有任何真正的工作。例如,Decode unicode escape characters适用于德国元音,但不适用于像'ß'这样的字符。输出“mä igerRegen”。 另外我没有让json_encodejson_decode函数工作......

也许有人可以帮助我,告诉我我做错了什么。

注意:PHP 5.5版

1 个答案:

答案 0 :(得分:1)

问题是文本文件,原因很简单,因为它们编码错误。

文件现在已正确编码,一切正常。