PHP에서는 mb_ord() 함수를 사용하여 주어진 문자의 유니코드 코드 포인트(Unicode code point) 값을 구할 수 있습니다. 이 함수는 PHP 7 이상 버전부터 지원되며, 반대로 코드 포인트 값에 해당하는 문자를 반환하는 mb_chr() 함수와 짝을 이루는 기능을 합니다.
문법
int mb_ord($str_string, $str_encoding)
매개변수
mb_ord() 함수는 다음 두 가지 매개변수를 받습니다.
$str_string − 코드 포인트 값을 확인할 대상 문자열입니다.
$str_encoding − 문자 인코딩을 지정하는 매개변수입니다. 이 값을 생략하거나 NULL로 지정하면 PHP의 내부 인코딩(internal encoding) 값이 사용됩니다.
반환 값
mb_ord() 함수는 주어진 문자열에서 첫 번째 문자의 유니코드 코드 포인트 값을 정수(int) 형태로 반환합니다. 처리에 실패하면 False를 반환합니다.
예제
<?php
echo "문자의 숫자 값(코드 포인트) 구하기 \n";
var_dump(mb_ord("B", "UTF-8"));
var_dump(mb_ord("d", "UTF-8"));
var_dump(mb_ord("\x80", "ISO-8859-2"));
var_dump(mb_ord("\x80", "Windows-1251"));
?>실행 결과
위 예제를 실행하면 다음과 같은 결과가 출력됩니다.
문자의 숫자 값(코드 포인트) 구하기 int(66) int(100) int(128) int(1026)
출력 결과를 살펴보면, UTF-8 인코딩에서 문자 'B'는 66, 'd'는 100이라는 코드 포인트 값을 가집니다. 흥미로운 점은 동일한 바이트 값인 \x80이라도 인코딩에 따라 결과가 달라진다는 것입니다. ISO-8859-2 인코딩에서는 128을 반환하지만, Windows-1251 인코딩에서는 키릴 문자 'Ђ'에 해당하는 1026이 반환됩니다. 이처럼 mb_ord() 함수를 사용할 때는 문자열의 실제 인코딩을 정확히 지정해 주는 것이 중요합니다.