백엔드 개발 PHP 튜토리얼 PHP中实现中文字符进制转换原理分析_php技巧

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

May 17, 2016 am 09:14 AM
한자 기본 변환

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

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()函数字符编码原理。
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

MySQL에서 CONV 함수를 사용하여 숫자 값을 다른 진수로 변환하는 방법 MySQL에서 CONV 함수를 사용하여 숫자 값을 다른 진수로 변환하는 방법 Jul 12, 2023 pm 02:33 PM

MySQL에서 CONV 함수를 사용하여 값을 다른 베이스로 변환하는 방법 소개: 데이터베이스에서는 종종 다른 베이스 사이의 값을 변환해야 합니다. MySQL은 숫자 값의 16진수 변환을 빠르게 실현할 수 있는 매우 편리한 CONV 기능을 제공합니다. 이 문서에서는 CONV 함수를 사용하는 방법을 자세히 설명하고 몇 가지 코드 예제를 제공합니다. 1. CONV 함수 개요 CONV 함수는 MySQL에서 제공하는 수학 함수로, 값을 한 진수에서 다른 진수로 변환하는 데 사용됩니다. 그것은

golang에서 입력이 모두 한자인지 확인하는 방법 golang에서 입력이 모두 한자인지 확인하는 방법 Jun 24, 2023 am 09:16 AM

시대가 발전함에 따라 우리는 데이터 검증, 특히 사용자 입력 검증에 점점 더 많은 관심을 기울이고 있습니다. 언어검증에서는 입력 내용이 모두 한자인지를 어떻게 정확하게 판단할 것인가가 중요한 문제가 되었다. golang에서는 이 요구 사항을 달성하기 위해 유니코드 패키지와 regexp 패키지를 사용할 수 있습니다. 1. 유니코드 패키지 유니코드 패키지는 유니코드에 대한 일련의 핵심 지원을 제공합니다. 이 패키지의 기능을 사용하면 문자가 한자인지 여부를 정확하게 확인할 수 있습니다.

C 언어 환경에서 한자를 정렬하는 방법은 무엇입니까? C 언어 환경에서 한자를 정렬하는 방법은 무엇입니까? Feb 18, 2024 pm 02:10 PM

C 언어 프로그래밍 소프트웨어에서 한자 정렬 기능을 구현하는 방법은 무엇입니까? 현대사회에서 한자 정렬 기능은 많은 소프트웨어에서 필수적인 기능 중 하나이다. 워드 프로세싱 소프트웨어, 검색 엔진 또는 데이터베이스 시스템에서 중국어 텍스트 데이터를 더 잘 표시하고 처리하려면 중국어 문자를 정렬해야 합니다. C언어 프로그래밍에서 한자 정렬 기능을 어떻게 구현하나요? 그 중 하나의 방법을 아래에 간략하게 소개합니다. 먼저 C언어에서 한자 정렬 기능을 구현하기 위해서는 문자열 비교 기능을 사용해야 한다. 란

PHP에서 한자의 병음 정렬 문제를 어떻게 처리합니까? PHP에서 한자의 병음 정렬 문제를 어떻게 처리합니까? Sep 05, 2023 pm 05:00 PM

PHP에서 한자의 병음 정렬 문제를 어떻게 처리합니까? 중국어 웹사이트나 애플리케이션을 개발할 때 중국어 문자열을 병음에 따라 정렬해야 하는 경우가 종종 있습니다. 그러나 한자의 복잡성으로 인해 기존 정렬 알고리즘을 직접 사용하면 정렬 결과에 오류가 발생할 수 있습니다. 그러므로 한자의 병음 정렬 문제를 다루기 위해서는 특별한 방법을 사용할 필요가 있다. PHP에서 일반적인 해결책은 "Overtrue/Pinyin"과 같은 병음 라이브러리를 사용하는 것입니다. 이것은 PHP 기반의 병음입니다.

PHP에서 정규식을 사용하여 중국어 문자를 일치시키는 방법 PHP에서 정규식을 사용하여 중국어 문자를 일치시키는 방법 Jun 22, 2023 am 09:16 AM

PHP에서 정규식은 문자열이 특정 형식을 준수하는지 확인하여 입력 값의 유효성을 확인하는 데 일반적으로 사용되는 문자열 일치 도구입니다. 한자를 처리할 때 한자와 영어의 인코딩이 다르기 때문에 정규식의 매칭규칙을 그에 맞게 조정해야 한다. 이 기사에서는 정규식을 사용하여 PHP에서 중국어 문자를 일치시키는 방법을 소개합니다. 1. 중국어 문자 인코딩을 이해합니다. PHP에서 일반적으로 사용되는 문자 인코딩은 UTF-8과 G입니다.

PHP에서 한자의 첫 글자를 얻는 방법은 무엇입니까? PHP에서 한자의 첫 글자를 얻는 방법은 무엇입니까? Sep 06, 2023 am 11:18 AM

PHP에서 한자의 첫 글자를 얻는 방법은 무엇입니까? 한자를 처리할 때 한자의 첫 글자를 구해야 하는 경우가 있습니다. PHP는 이 기능을 달성하기 위해 몇 가지 내장 함수와 확장 패키지를 제공합니다. 일반적인 방법은 mb_substr() 함수를 ord() 함수와 함께 사용하는 것입니다. mb_substr() 함수는 문자열의 하위 문자열을 얻는 데 사용되고, ord() 함수는 문자의 ASCII 코드 값을 얻는 데 사용됩니다. 첫 번째 문자와 해당 ASCII 코드 값을 가져와서 한자의 첫 글자를 얻을 수 있습니다.

PHP를 사용하여 중국어 문자를 병음 이니셜로 자동 변환하는 검색 상자를 작성하는 방법은 무엇입니까? PHP를 사용하여 중국어 문자를 병음 이니셜로 자동 변환하는 검색 상자를 작성하는 방법은 무엇입니까? Sep 05, 2023 pm 06:21 PM

PHP를 사용하여 중국어 문자를 병음 이니셜로 자동 변환하는 검색 상자를 작성하는 방법은 무엇입니까? 인터넷에서 중국어가 널리 사용됨에 따라 사용자가 정보를 쉽게 검색할 수 있도록 병음의 첫 글자를 기반으로 한 검색 기능을 제공해야 하는 경우가 많습니다. 이번 글에서는 한자를 병음의 첫 글자로 변환할 수 있는 검색창을 PHP로 작성하는 방법을 소개하겠습니다. 먼저 중국어를 병음으로 변환하기 위한 라이브러리를 준비해야 합니다. PHP에서는 오픈 소스 라이브러리 pinyin.php를 사용하여 이 기능을 구현할 수 있습니다. 넌 합격할 수 있어

PHP 정규식 연습: 한자 매칭 PHP 정규식 연습: 한자 매칭 Jun 22, 2023 pm 08:34 PM

PHP를 사용하여 프로젝트를 개발하는 과정에서 한자를 처리해야 하는 경우가 종종 발생합니다. 정규식은 중국어 문자를 빠르고 정확하게 일치시키고 처리하는 데 도움이 되는 강력한 텍스트 처리 도구입니다. 이번 글에서는 PHP 정규식을 사용하여 한자를 일치시키는 방법에 대한 관련 기술과 예제를 소개하겠습니다. 한자 매칭 먼저 한자가 컴퓨터에서 어떻게 표현되는지 이해해야 합니다. 일반적으로 한자는 유니코드 인코딩을 사용하여 표현됩니다. 유니코드로

See all articles