PHP 에서 중국어 문자 진 변환 원리 분석 실현

첫째,중국어 문자 10 진법 원리 분석 GBK 인 코딩 의 한 자 는 두 글자 로 구성 되 어 있 으 며 한자 문자열 을 얻 는 방법 은 다음 과 같다
 
$string = " ";
$length = strlen($string);
for($i=0;$i<$length;$i++){
if(ord($string[$i])>127){
$result[] = ord($string[$i]).' '.ord($string[++$i]);
}
}
var_dump($result);
php-ord-dec-number.한 한자 가 두 글자 로 구성 되 어 있 기 때문에 ord()함 수 를 통 해 문 자 를 얻 는 ASCII 값 이 127 보다 크 면 현재 문 자 를 한 한자 의 앞부분 으로 확정 할 수 있다.한자 의 후반 부 를 가 져 와 야 한다.물론 이런 판단 방법 은 구체 적 인 개발 환경 과 결합 해 야 한다.만약 에 ASCII 치가 127 보다 큰 단일 문자 가 존재 한다 면 이런 방법 은 판단 이 정확 하지 않다.PHP 가 중국어 문 자 를 10 진법 으로 바 꾸 는 원 리 는 for 순환 방법 으로 한자 의 두 문 자 를 얻 은 다음 에 ord()함 수 를 사용 하여 각 문 자 를 10 진법 으로 바 꾸 는 것 이다.위 와 같이:아니[178187][210 170]팬[195212]사랑[193181]형[184231]2.중국어 문자 전환 16 진법 원리 분석 은 UltraEdit 개발 도 구 를 사용 하면 중국어 문자 의 16 진법 을 직접 볼 수 있다.아래 그림 과 같다.'형 에 게 미련 을 두 지 마 세 요'라 는 다섯 글자 의 16 진법ultraedit-16-hex을 보면 위의 그림 에서 각 한자 가 해당 하 는 16 진법 문 자 를 알 수 있다.구체 적 으로 볼 수 있 는[PHP 함수 편 은 ord()와 chr()함수 응용]을 파악 한 다음 에 dechex()함수 로 각 중국어 문 자 를 16 진수 인 스 턴 스 소스 코드
 
$string = " ";
$length = strlen($string);
echo $string;
$result = array();
//
for($i=0;$i<$length;$i++){
if(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위의 방법 을 통 해 중국어 문 자 를 16 진법 으로 변환 하고 출력 결 과 는 UltraEdit 개발 도 구 를 사용 하여 얻 은 16 진법 과 비교 할 수 있 습 니 다.3.중국어 문자 의 바 이 너 리 와 8 진 원리 분석 을 통 해 중국어 문자 의 바 이 너 리 와 8 진 은 위의 16 진 변환 원리 와 마찬가지 로 전환 하 는 함수 만 다 르 고 위의 인 스 턴 스 코드 와 결합 하여 다음 과 같은 중국어 문자 의 바 이 너 리 를 실현 합 니 다.방법 은 다음 과 같 습 니 다
 
$strings = array();
foreach($result as $v){
$dec = explode(" ",$v);
$strings[] = decbin($dec[0])." ".decbin($dec[1]);
}
var_dump($strings);
결 과 는 다음 과 같 습 니 다.php-dec-bin-string중국어 문 자 는 8 진 으로 바 꿉 니 다.방법 은 다음 과 같다
 
$strings = array();
foreach($result as $v){
$dec = explode(" ",$v);
$strings[] = decoct($dec[0])." ".decoct($dec[1]);
}
결 과 는 다음 과 같다.

좋은 웹페이지 즐겨찾기