백엔드 개발 PHP 문제 php substr 함수가 중국어 왜곡 문자를 가로채면 어떻게 해야 합니까?

php substr 함수가 중국어 왜곡 문자를 가로채면 어떻게 해야 합니까?

Sep 20, 2021 am 10:47 AM

PHP substr 함수가 문자가 깨져 있는 한자를 가로채는 이유는 substr 함수가 UTF-8 한자를 3바이트로 처리하기 때문입니다. 문자 깨짐을 해결하는 방법은 대신 mb_strlen 및 mb_substr 함수를 사용하는 것입니다.

php substr 함수가 중국어 왜곡 문자를 가로채면 어떻게 해야 합니까?

이 기사의 운영 환경: Windows 7 시스템, PHP7.1, Dell G3 컴퓨터.

php substr 함수가 중국어 왜곡 문자를 가로채면 어떻게 해야 하나요?

PHP에서 substr을 사용하여 중국어 문자를 가로채는 솔루션

Substr은 종종 PHP에서 문자열을 가로채는 데 사용되지만, 이를 사용하여 중국어 문자를 가로채는 경우 문자가 깨져 발생합니다. 예:

<?php
$mystring="今天天气真好";
$mysubstring=substr($mystring,0,2);
echo $mysubstring;
?>
로그인 후 복사

출력 결과는 �;

원인 분석: substr 함수의 프로토타입은 string substr ( string $string , int $start [, int $length ] )입니다. 여기서 $length는 반환된 바이트 길이를 나타내고 한자가 2개를 차지합니다. 바이트, UTF-8 중국어 문자의 경우 3바이트로 처리됩니다.

<?php
$length=strlen($mystring);echo $length;//输出结果为18
?>
로그인 후 복사

즉, $length를 3으로 설정하면 "Jin"이라는 단어가 성공적으로 반환됩니다. 이 경우 중국어와 영어가 섞여 있다면 $length를 주의 깊게 계산해야 합니다.

그렇다면 더 나은 해결책이 있을까요? Php는 추가 기능 mb_strlen 및 mb_substr

<?php
$length=mb_strlen($mystring);
$mysub=mb_substr($mystring,0,4);
echo "the length is:$length,","the substr is:$mysub";
?>
로그인 후 복사

을 제공합니다. 출력 결과는 다음과 같습니다. 길이는 6, substr은 오늘의 날씨
mb_strlen 함수의 프로토타입은 int mb_strlen(string string_input, string encode 기본값은 UTF-입니다. 8, UTF-8로 인코딩된 중국어 문자를 하나로 계산합니다

참고: mb_strlen 및 mb_substr은 PHP의 핵심 기능이 아닙니다. 사용하기 전에 php.ini에서 확장=php_mbstring.dll을 열어야 합니다

권장 사항: "PHP 비디오 튜토리얼"

위 내용은 php substr 함수가 중국어 왜곡 문자를 가로채면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 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 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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