현재 위치: > 최신 기사 목록> mb_convert_case에서 멀티 바이트 문자 세트 (예 : UTF-8)를 처리하는 방법

mb_convert_case에서 멀티 바이트 문자 세트 (예 : UTF-8)를 처리하는 방법

gitbox 2025-05-29

strtolower 또는 strtoupper 대신 mb_convert_case를 사용합니까?

표준 strtolowerstrtoupper 기능은 ASCII 문자 만 지원합니다. UTF-8과 같은 문자를 인코딩 할 때는 영어 이외의 문자를 올바르게 변환 할 수 없습니다. 예를 들어:

 $text = "Γει? Σου Κ?σμε"; // 그리스 사람
echo strtoupper($text); // 출력이 잘못 될 수 있습니다

현재 MB_Convert_case 가 필요합니다.

 $text = "Γει? Σου Κ?σμε";
echo mb_convert_case($text, MB_CASE_UPPER, "UTF-8"); // 대문자로 올바르게 변환하십시오

매개 변수에 대한 자세한 설명

mb_convert_case 의 기능 프로토 타입은 다음과 같습니다.

 string mb_convert_case(string $string, int $mode, ?string $encoding = null)
  • $ String : 변환 할 문자열.

  • $ 모드 : 전환 모드, 주로 :

    • MB_CASE_UPPER : 대문자로 변환합니다

    • MB_CASE_LOWER : 소문자로 변환합니다

    • MB_CASE_TITLE : 각 단어의 첫 글자의 대문자

  • $ 인코딩 : 문자 인코딩 (예 : UTF-8, GBK). 지정되지 않으면 MB_INTERNAL_ENCODING ()는 기본적으로 사용됩니다.


실용적인 기술을 공유하십시오

1. 인코딩을 명확하게 지정합니다

여러 번 개발자는 인코딩 매개 변수를 무시하여 변환 결과가 잘못되었습니다. 항상 코드를 명확하게 작성하는 것이 좋습니다.

 $text = "na?ve fa?ade résumé";
echo mb_convert_case($text, MB_CASE_UPPER, 'UTF-8');

출력 : na? ve fa? ade résumé

2. 중국어를 다루는 방법?

MB_CONVERT_CASE는 한자의 상태를 변경하지 않습니다 (중국에는 상류 및 소문자가 없기 때문에). 그러나 여전히 UTF-8 인코딩을 설정해야합니다. 그렇지 않으면 문자열이 잘릴 수 있습니다.

 $text = "안녕하세요 World";
echo mb_convert_case($text, MB_CASE_UPPER, 'UTF-8'); // 산출:안녕하세요 WORLD

3. 첫 글자 대문자 (제목 형식)

기사 제목, 뉴스 제목 등을 처리하는 데 적합합니다.

 $title = "le petit prince";
echo mb_convert_case($title, MB_CASE_TITLE, 'UTF-8'); // Le Petit Prince

텍스트에 HTML 태그 나 엔터티가있는 경우 먼저 제거하거나 적절한 처리를 수행하십시오. 그렇지 않으면 출력이 영향을받습니다.

4. 양식 데이터 정리와 함께 사용하십시오

 $name = trim($_POST['name']);
$cleaned = mb_convert_case($name, MB_CASE_TITLE, 'UTF-8');

인터페이스, 특히 문서 이름, 제목 표시 줄 등에 대한 인터페이스를 표시 할 때 사용자 입력이 일관된 형식을 갖도록하십시오.


샘플 응용 프로그램 : 사용자 프로필 디스플레이 형식의 표준화

사용자 프로파일에서 이름 필드를 형식화하고 표시해야한다고 가정하고 다국어 입력을 지원합니다.

 function formatUserName($name) {
    return mb_convert_case(trim($name), MB_CASE_TITLE, 'UTF-8');
}

echo formatUserName("éMILIE du chatelet"); // émilie Du Chatelet

API 인터페이스 에서이 기능을 캡슐화하고 반환 된 JSON 데이터를 통합 형식으로 표준화 할 수 있습니다. 예제는 다음과 같습니다.

 header('Content-Type: application/json');

$data = [
    'name' => mb_convert_case('sErGiO péRez', MB_CASE_TITLE, 'UTF-8'),
    'profile_url' => 'https://gitbox.net/user/sergioperez'
];

echo json_encode($data);