현재 위치: > 최신 기사 목록> 다국어 웹 사이트에서 mysqli :: set_charset을 사용하는 방법 다른 언어의 정상적인 표시를 달성합니다.

다국어 웹 사이트에서 mysqli :: set_charset을 사용하는 방법 다른 언어의 정상적인 표시를 달성합니다.

gitbox 2025-08-13

문자 세트와 인코딩은 무엇입니까?

문자 세트는 컴퓨터가 문자를 특정 인코딩 된 값에 매핑하는 문자를 저장하는 데 사용하는 시스템입니다. 인코딩은 문자의 문자를 이진 데이터로 변환하는 방법입니다. 일반적인 문자 세트에는 UTF-8, GBK, ISO-8859-1 등이 포함됩니다.

다국어 웹 사이트에서 UTF-8 인코딩은 거의 모든 언어 문자를 지원하고 호환성이 우수하기 때문에 일반적으로 선택됩니다. UTF-8은 세계의 거의 모든 텍스트를 나타낼 수있는 가변 길이 문자 인코딩입니다.


mysqli :: set_charset이 필요한 이유는 무엇입니까?

데이터베이스와 PHP 사이의 문자 인코딩은 일관성이 있어야합니다. 그렇지 않으면 데이터 전송 중에는 차별화 된 코드 또는 손실 된 정보가 발생할 수 있습니다. 예를 들어, 데이터베이스가 UTF-8 인코딩을 사용하고 PHP가 데이터베이스에 연결할 때 문자 인코딩을 올바르게 설정하지 않으면 데이터베이스에 저장된 중국 콘텐츠가 웹 사이트에 차지하게 나타날 수 있습니다.

mysqli :: set_charset은 PHP와 MySQL 데이터베이스 사이의 문자 인코딩 일관성을 보장하도록 설계되었습니다. 이 메소드를 사용하여 데이터베이스에 연결 한 후 특정 문자 세트를 사용할 수 있도록 MySQL 데이터베이스 연결을 설정하여 일관되지 않은 인코딩으로 인한 디스플레이 문제를 피할 수 있습니다.


mysqli :: set_charset을 사용하는 방법?

mysqli :: set_charset 메소드를 사용하는 것은 매우 간단합니다. MySQLI를 통해 MySQL 데이터베이스에 연결되었다고 가정하면 문자를 UTF-8로 설정하는 단계는 다음과 같습니다.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 데이터베이스 연결을 만듭니다</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-string">"localhost"</span></span><span>, </span><span><span class="hljs-string">"username"</span></span><span>, </span><span><span class="hljs-string">"password"</span></span><span>, </span><span><span class="hljs-string">"database_name"</span></span><span>);

</span><span><span class="hljs-comment">// 연결이 성공했는지 확인하십시오</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;connect_error) {
    </span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"연결이 실패했습니다: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;connect_error);
}

</span><span><span class="hljs-comment">// 문자를 설정하십시오 UTF-8</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">set_charset</span></span><span>(</span><span><span class="hljs-string">"utf8"</span></span><span>)) {
    </span><span><span class="hljs-title function_ invoke__">printf</span></span><span>(</span><span><span class="hljs-string">"실수:문자 세트를 설정할 수 없습니다 %s\n"</span></span><span>, </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;error);
    </span><span><span class="hljs-keyword">exit</span></span><span>();
}

</span><span><span class="hljs-comment">// 데이터베이스 쿼리 및 기타 작업을 수행하십시오...</span></span><span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

위의 코드에서 $ mysqli-> set_charset ( "utf8")은 데이터베이스 연결의 문자 세트를 UTF-8로 설정합니다. 이를 통해 데이터베이스에서 데이터를 읽거나 쓰는 데이터를 UTF-8 인코딩으로 올바르게 처리하여 문제를 피할 수 있습니다.


다국어 웹 사이트에서 사용하는 방법은 무엇입니까?

다국어 웹 사이트는 일반적으로 컨텐츠를 중국어, 영어, 일본어 등과 같은 여러 언어로 저장하기 위해 이러한 언어 내용을 제대로 표시 할 수 있도록 데이터베이스의 문자 세트와 PHP 연결 문자 세트와 일치해야합니다. PHP의 데이터베이스 연결 코드에서 mysqli :: set_charset을 설정하여 일관된 인코딩을 보장 할 수 있습니다. 또한 캐릭터 세트는 프론트 엔드 페이지에 설정해야합니다. 일반적으로 문자 세트는 html의 <meta> 태그를 설정하여 UTF-8으로 지정됩니다.

 <span><span><span class="hljs-tag">&lt;<span class="hljs-name">meta</span></span></span><span> </span><span><span class="hljs-attr">charset</span></span><span>=</span><span><span class="hljs-string">"UTF-8"</span></span><span>&gt;
</span></span>

이러한 방식으로 프론트 엔드 페이지는 UTF-8 인코딩에 따라 컨텐츠를 구문 분석하여 다양한 언어의 문자를 정상적으로 표시 할 수 있도록합니다.


UTF-8을 사용하여 다국어 데이터를 데이터베이스에 저장하십시오

데이터가 데이터베이스에 문자를 다른 언어로 올바르게 저장할 수 있도록 데이터베이스의 테이블과 필드가 UTF-8을 사용하여 인코딩되도록해야합니다. 다음 SQL 명령으로 테이블을 만들 때 UTF-8로 설정된 문자를 지정할 수 있습니다.

 <span><span><span class="hljs-keyword">CREATE</span></span><span> </span><span><span class="hljs-keyword">TABLE</span></span><span> `content` (
    `id` </span><span><span class="hljs-type">INT</span></span><span> </span><span><span class="hljs-keyword">NOT</span></span><span> </span><span><span class="hljs-keyword">NULL</span></span><span> AUTO_INCREMENT </span><span><span class="hljs-keyword">PRIMARY</span></span><span> KEY,
    `title` </span><span><span class="hljs-type">VARCHAR</span></span><span>(</span><span><span class="hljs-number">255</span></span><span>) </span><span><span class="hljs-keyword">NOT</span></span><span> </span><span><span class="hljs-keyword">NULL</span></span><span>,
    `description` TEXT
) ENGINE</span><span><span class="hljs-operator">=</span></span><span>InnoDB </span><span><span class="hljs-keyword">DEFAULT</span></span><span> CHARSET</span><span><span class="hljs-operator">=</span></span><span>utf8;
</span></span>

기본 charset = utf8을 지정함으로써 테이블이 UTF-8 인코딩을 지원하고 다양한 언어에서 문자를 저장할 수 있는지 확인합니다.


자주 묻는 질문과 해결책

  1. 쓰레기 코드 문제 :
    문자 세트를 설정 한 후에는 Barlled 코드가 여전히 나타나면 먼저 데이터베이스의 기본 문자 세트가 UTF-8인지 확인하십시오. 또한 페이지의 HTML 인코딩이 UTF-8로 설정되어 있는지 확인해야합니다. 이것들이 올바르게 설정되지만 문제가 지속되면 데이터베이스 테이블 및 필드의 문자 세트 설정을 확인할 수 있습니다.

  2. 캐릭터 세트 불일치 :
    데이터베이스 및 PHP 연결의 문자 세트가 일치하지 않으면 문자가 올바르게 표시되지 않을 수 있습니다. mysqli :: set_charset 메소드를 사용하여 둘 사이의 일관성을 보장하십시오.

  3. MySQL 버전은 다음을 지원합니다.
    MySQL 버전이 UTF-8 또는 UTF8MB4를 지원하는지 확인하십시오 (후자는 이모티콘 등과 같은 더 많은 문자를 지원하는 UTF-8의 슈퍼 셋입니다). 다음 명령을 통해 현재 데이터베이스에서 지원하는 문자 세트를 볼 수 있습니다.

     <span><span><span class="hljs-keyword">SHOW</span></span><span> </span><span><span class="hljs-type">CHARACTER</span></span><span> </span><span><span class="hljs-keyword">SET</span></span><span>;
    </span></span>