Apakah ada fungsi dalam PHP yang dapat mendekode urutan escape Unicode seperti " \u00ed
" ke " í
" dan semua kejadian serupa lainnya?
Saya menemukan pertanyaan serupa di sini tetapi tampaknya tidak berhasil.
Coba ini:
$str = preg_replace_callback('/\\\\u([0-9a-fA-F]{4})/', function ($match) {
return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE');
}, $str);
Jika itu adalah gaya C / C ++ / Java / Json berbasis UTF-16:
$str = preg_replace_callback('/\\\\u([0-9a-fA-F]{4})/', function ($match) {
return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UTF-16BE');
}, $str);
\u
diikuti oleh empat digit heksadesimal.sumber
json_decode('"' . $text . '"')
json_decode('{"t":"\uD83D\uDE0A"}')
adalah 😊$text
dapat menyertakan tanda kutip ganda. Jadi versi revisi akan:json_decode('"'.str_replace('"', '\\"', $text).'"')
. Terima kasih atas bantuan Anda :-)PHP 7+
Mulai PHP 7, Anda dapat menggunakan sintaks escape titik kode Unicode untuk melakukan ini.
echo "\u{00ed}";
keluaraní
.sumber
sumber
😍
Ini adalah pendekatan palu godam untuk mengganti UNICODE mentah dengan HTML. Saya belum melihat tempat lain untuk meletakkan solusi ini, tetapi saya berasumsi bahwa orang lain memiliki masalah ini.
Terapkan fungsi str_replace ini ke RAW JSON , sebelum melakukan apa pun.
Ini tidak akan memakan waktu selama yang Anda pikirkan, dan ini akan menggantikan UNICode APA PUN dengan HTML.
Tentu saja hal ini dapat dikurangi jika Anda mengetahui jenis unicode yang dikembalikan di JSON.
Misalnya kode saya mendapatkan banyak panah dan unicode dingbat. Ini antara 8448 dan 11263. Jadi kode produksi saya terlihat seperti:
Anda dapat mencari blok Unicode menurut ketik di sini: http://unicode-table.com/en/ Jika Anda tahu Anda sedang menerjemahkan bahasa Arab atau Telegu atau apa pun, Anda dapat mengganti kode tersebut, tidak semuanya 65.000.
Anda dapat menerapkan palu godam yang sama ini ke pengkodean sederhana:
sumber
Ada juga solusinya:
http://www.welefen.com/php-unicode-to-utf8.html
sumber
perbaiki nilai json, tambahkan \ sebelum u {xxx} ke semua + ""
sumber