Rumah pembangunan bahagian belakang tutorial php PHP中实现中文字符进制转换原理分析_php技巧

PHP中实现中文字符进制转换原理分析_php技巧

May 17, 2016 am 09:14 AM
aksara Cina Penukaran asas

一,中文字符转十进制原理分析

GBK编码中一个汉字由二个字符组成,获取汉字字符串的方法如下
复制代码 代码如下:

$string = "不要迷恋哥";
$length = strlen($string);
for($i=0;$iif(ord($string[$i])>127){
$result[] = ord($string[$i]).' '.ord($string[++$i]);
}
}
var_dump($result);

php-ord-dec-number
由于一个汉字为两个字符组成,通过ord()函数获取字符的ASCII值如果大于127时,就可以确定当前字符为一个汉字的前半部分,还需要获取汉字的后半部分。当然,这种判断的方法要结合具体的开发环境,如果存在ASCII值大于127的单个字符,这种方法判断显然就不正确。

PHP实现中文字符转十进制的原理就是通过for循环的方法获取一个汉字的二个字符,然后使用ord()函数把各字符转换为十进制。如上分别是:不 [178 187] 要 [210 170] 迷 [195 212] 恋 [193 181] 哥 [184 231]

二,中文字符转十六进制原理分析

使用UltraEdit开发工具可以直接查看中文字符的十六进制,如下图

如,查看“不要迷恋哥”这五个字的十六进制
ultraedit-16-hex
从上面的图可以知道各个汉字对应该的十六进制字符分别是:不 B2BB 要 D2AA 迷 C3D4 恋 C1B5 哥 B8E7

PHP 实现中文字符转十六进制的原理就是首先使用ord()函数取出各个中文字符的十进制,具体可查看[PHP函数篇掌握ord()与chr()函数应用],然后使用dechex()函数把各个中文字符转化为十六进制

实例源代码
复制代码 代码如下:

$string = "不要迷恋哥";
$length = strlen($string);
echo $string;
$result = array();
//十进制
for($i=0;$iif(ord($string[$i])>127){
$result[] = ord($string[$i]).' '.ord($string[++$i]);
}
}
var_dump($result);
//十六进制
$strings = array();
foreach($result as $v){
$dec = explode(" ",$v);
$strings[] = dechex($dec[0])." ".dechex($dec[1]);
}
var_dump($strings);

结果如下图

php-dec-hex-string

通过上面的方法实现把中文字符转换为十六进制,输出结果可对比使用UltraEdit开发工具获取的十六进制。

三,中文字符转二进制和八进制原理分析

实现中文字符转二进制和八进制与上面的十六进制转换原理一样,只是转换的函数不同,结合上面的实例代码,实现如下

中文字符转二进制,方法如下
复制代码 代码如下:

$strings = array();
foreach($result as $v){
$dec = explode(" ",$v);
$strings[] = decbin($dec[0])." ".decbin($dec[1]);
}
var_dump($strings);

结果如下:
php-dec-bin-string
中文字符转八进制,方法如下
复制代码 代码如下:

$strings = array();
foreach($result as $v){
$dec = explode(" ",$v);
$strings[] = decoct($dec[0])." ".decoct($dec[1]);
}

结果如下:
php-string-hex
了解PHP实现中文字符进制转换原理,再通过PHP内置函数urldecode()就可以把十六进制的字符串通过组合转换为正常的中文汉字,请关注下一期中文字符编码研究系列之urldecode()与urlencode()函数字符编码原理。
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk mengesahkan sama ada input adalah semua aksara Cina dalam golang Bagaimana untuk mengesahkan sama ada input adalah semua aksara Cina dalam golang Jun 24, 2023 am 09:16 AM

Dengan perkembangan zaman, kami memberi lebih banyak perhatian kepada pengesahan data, terutamanya pengesahan input pengguna. Untuk pengesahan bahasa, cara menentukan dengan tepat sama ada input adalah semua aksara Cina telah menjadi isu penting. Dalam golang, kita boleh menggunakan pakej unicode dan pakej regexp untuk mencapai keperluan ini. 1. Pakej Unicode Pakej unicode menyediakan satu siri sokongan teras untuk unicode. Kita boleh menggunakan fungsi dalam pakej ini untuk menentukan dengan tepat sama ada sesuatu aksara ialah aksara Cina.

Bagaimana untuk menangani masalah pengisihan pinyin aksara Cina dalam PHP? Bagaimana untuk menangani masalah pengisihan pinyin aksara Cina dalam PHP? Sep 05, 2023 pm 05:00 PM

Bagaimana untuk menangani masalah pengisihan pinyin aksara Cina dalam PHP? Apabila membangunkan laman web atau aplikasi Cina, kita sering menghadapi keperluan untuk mengisih rentetan bahasa Cina mengikut pinyin. Walau bagaimanapun, disebabkan kerumitan aksara Cina, secara langsung menggunakan algoritma pengisihan konvensional akan membawa kepada ralat dalam keputusan pengisihan. Oleh itu, kita perlu menggunakan kaedah khas untuk menangani masalah pengisihan pinyin bagi aksara Cina. Dalam PHP, penyelesaian biasa ialah menggunakan perpustakaan pinyin seperti "Overtrue/Pinyin". Ini adalah pinyin berdasarkan PHP

Cara menggunakan fungsi CONV dalam MySQL untuk menukar nilai berangka kepada pangkalan yang berbeza Cara menggunakan fungsi CONV dalam MySQL untuk menukar nilai berangka kepada pangkalan yang berbeza Jul 12, 2023 pm 02:33 PM

Cara menggunakan fungsi CONV dalam MySQL untuk menukar nilai kepada asas yang berbeza Pengenalan: Dalam pangkalan data, selalunya perlu untuk menukar nilai antara pangkalan yang berbeza. MySQL menyediakan fungsi CONV yang sangat mudah, yang boleh merealisasikan penukaran heksadesimal nilai berangka dengan cepat. Artikel ini memperincikan cara menggunakan fungsi CONV dan menyediakan beberapa contoh kod. 1. Gambaran keseluruhan fungsi CONV Fungsi CONV ialah fungsi matematik yang disediakan oleh MySQL, yang digunakan untuk menukar nilai dari satu pangkalan ke pangkalan yang lain. itu

Bagaimana untuk mengisih aksara Cina dalam persekitaran bahasa C? Bagaimana untuk mengisih aksara Cina dalam persekitaran bahasa C? Feb 18, 2024 pm 02:10 PM

Bagaimana untuk melaksanakan fungsi pengisihan aksara Cina dalam perisian pengaturcaraan bahasa C? Dalam masyarakat moden, fungsi pengisihan aksara Cina adalah salah satu fungsi penting dalam banyak perisian. Sama ada dalam perisian pemprosesan perkataan, enjin carian atau sistem pangkalan data, aksara Cina perlu diisih untuk memaparkan dan memproses data teks Cina dengan lebih baik. Dalam pengaturcaraan bahasa C, bagaimana untuk melaksanakan fungsi pengisihan aksara Cina? Satu kaedah diperkenalkan secara ringkas di bawah. Pertama sekali, untuk melaksanakan fungsi pengisihan aksara Cina dalam bahasa C, kita perlu menggunakan fungsi perbandingan rentetan. Berlari

Cara menggunakan ungkapan biasa untuk memadankan aksara Cina dalam PHP Cara menggunakan ungkapan biasa untuk memadankan aksara Cina dalam PHP Jun 22, 2023 am 09:16 AM

Dalam PHP, ungkapan biasa ialah alat pemadanan rentetan yang biasa digunakan. Ia boleh digunakan untuk menentukan sama ada rentetan mematuhi format tertentu, dengan itu mengesahkan kesahihan nilai input. Apabila memproses aksara Cina, kerana aksara Cina dan aksara Inggeris dikodkan secara berbeza, peraturan padanan ungkapan biasa perlu dilaraskan dengan sewajarnya. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa untuk memadankan aksara Cina dalam PHP. 1. Fahami pengekodan aksara Cina yang biasa digunakan dalam PHP ialah UTF-8 dan G.

Bagaimana untuk mendapatkan huruf pertama aksara Cina dalam PHP? Bagaimana untuk mendapatkan huruf pertama aksara Cina dalam PHP? Sep 06, 2023 am 11:18 AM

Bagaimana untuk mendapatkan huruf pertama aksara Cina dalam PHP? Semasa memproses aksara Cina, kadangkala kita perlu mendapatkan huruf pertama aksara Cina. PHP menyediakan beberapa fungsi terbina dalam dan pakej sambungan untuk mencapai fungsi ini. Cara biasa ialah menggunakan fungsi mb_substr() dalam kombinasi dengan fungsi ord(). Fungsi mb_substr() digunakan untuk mendapatkan subrentetan rentetan, dan fungsi ord() digunakan untuk mendapatkan nilai kod ASCII aksara. Kita boleh mendapatkan huruf pertama aksara Cina dengan mendapatkan aksara pertama dan nilai kod ASCIInya.

Bagaimana untuk menukar perpuluhan kepada binari dalam bahasa c Bagaimana untuk menukar perpuluhan kepada binari dalam bahasa c Nov 24, 2022 am 10:27 AM

Cara menukar perpuluhan kepada perduaan: Teruskan membahagi nombor perpuluhan dengan 2 sehingga hasil bahagi sifar, dan kemudian tulis baki dari bawah ke atas kod penukaran "int main(void){int n,len;int a[20]; ;scanf("%d",&n);while(n/2){a[len ]=n%2;n=n/2;}a[len ]=n%2;for(i=len-1 ;i>=0;i--){printf("%d",a[i]);}}".

Amalan ungkapan biasa PHP: memadankan aksara Cina Amalan ungkapan biasa PHP: memadankan aksara Cina Jun 22, 2023 pm 08:34 PM

Dalam proses menggunakan PHP untuk membangunkan projek, kami sering menghadapi keperluan untuk memproses aksara Cina. Ungkapan biasa ialah alat pemprosesan teks yang berkuasa yang boleh membantu kami memadankan dan memproses aksara Cina dengan cepat dan tepat. Dalam artikel ini, saya akan memperkenalkan teknik dan contoh yang berkaitan tentang cara menggunakan ungkapan biasa PHP untuk memadankan aksara Cina. Memadankan Aksara Cina Pertama, kita perlu memahami cara aksara Cina diwakili dalam komputer. Biasanya, aksara Cina diwakili menggunakan pengekodan Unicode. Dalam Unicod

See all articles