Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Mengekstrak Mata Kod UCS-2 daripada Aksara UTF-8 dalam PHP?
Menentukan Mata Kod UCS-2 untuk Aksara UTF-8 dalam PHP
Tugas yang ada ialah mengekstrak mata kod UCS-2 untuk aksara dalam rentetan UTF-8 yang diberikan. Untuk mencapai matlamat ini, fungsi PHP tersuai boleh ditakrifkan.
Pertama sekali, adalah penting untuk memahami skema pengekodan UTF-8. Setiap aksara diwakili oleh urutan 1 hingga 4 bait, bergantung pada titik kod Unicodenya. Julat untuk setiap saiz bait adalah seperti berikut:
Fungsi PHP Tersuai:
Berdasarkan pada analisis di atas, berikut ialah fungsi PHP tersuai yang mengambil satu aksara UTF-8 sebagai input dan mengembalikan titik kod UCS-2nya:
Contoh Penggunaan:<code class="php">function get_ucs2_codepoint($char) { // Initialize the code point $codePoint = 0; // Get the first byte $firstByte = ord($char); // Determine the number of bytes if ($firstByte < 128) { $bytes = 1; } elseif ($firstByte < 192) { $bytes = 2; } elseif ($firstByte < 224) { $bytes = 3; } elseif ($firstByte < 240) { $bytes = 4; } else { // Invalid character return -1; } // Shift and extract code point switch ($bytes) { case 1: $codePoint = $firstByte; break; case 2: $codePoint = ($firstByte & 0x1F) << 6; $codePoint |= ord($char[1]) & 0x3F; break; case 3: $codePoint = ($firstByte & 0x0F) << 12; $codePoint |= (ord($char[1]) & 0x3F) << 6; $codePoint |= ord($char[2]) & 0x3F; break; case 4: $codePoint = ($firstByte & 0x07) << 18; $codePoint |= (ord($char[1]) & 0x3F) << 12; $codePoint |= (ord($char[2]) & 0x3F) << 6; $codePoint |= ord($char[3]) & 0x3F; break; } return $codePoint; }</code>
Untuk menggunakan fungsi, hanya sediakan aksara UTF-8 sebagai input:
Output:<code class="php">$char = "ñ"; $codePoint = get_ucs2_codepoint($char); echo "UCS-2 code point: $codePoint\n";</code>
Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Mata Kod UCS-2 daripada Aksara UTF-8 dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!