Converter caracteres unicode acima de 127 em decimal [duplicado]
Duplicata Possível:
Como converter texto para unicode ponto de código como \ u0054 \ u0068 \ u0069 \ u0073 usando php?
Eu estou tentando converter todos os caracteres que não podem caber em um caractere ANSI de 7 bits em um formulário de escape,\uN
, OndeN
é o seu valor decimal. Aqui está o que eu inventei:
private static function escape($str) {
return preg_replace_callback('~[\\x{007F}-\\x{FFFF}]~u',function($m){return '\\u'.ord($m[0]);},$str);
}
Eu tentei com personagens como Gamma,
echo self::escape('Γ');
Mas eu recebo\u206
de volta em vez de\u915
. Eu não consigo descobrir onde estou indo errado ... idéias?
Na verdade, parece que ou oord()
função não me dá o valor ou eu quero, ou talvez a codificação no meu arquivo .php está errado?