다국어 사이트 개발에서 캐릭터 인코딩 관리는 매우 중요한 문제입니다. 다른 언어와 지역마다 다른 문자 세트를 사용할 수 있으며, 문자 인코딩이 올바르게 설정되지 않으면 사이트의 내용이 밝혀 지거나 올바르게 표시되지 않을 수 있습니다. PHP는 MySQL 데이터베이스를 작동하기 위해 MySQLI 확장 기능을 제공합니다. 이 확장에서 MySqli :: get_charset 함수는 현재 데이터베이스 연결의 문자 세트를 얻는 데 도움이 될 수 있습니다.
이 기사에서는 MySqli :: get_charset 함수를 사용하여 문자 인코딩을 균일하게 관리하고 다른 언어의 내용이 다국어 사이트에 올바르게 표시되도록하는 방법에 대해 논의합니다.
문자 인코딩은 문자를 일련의 바이트에 매핑하는 방법입니다. 다국어 사이트에서는 특히 사이트가 여러 언어를 지원할 때 올바른 문자 인코딩을 설정하는 것이 중요합니다. 일반적인 문자 인코딩에는 UTF-8, ISO-8859-1, GBK 등이 포함됩니다. UTF-8은 거의 모든 언어의 문자를 지원하는 널리 사용되는 문자 인코딩입니다.
다국어 사이트에서는 다른 언어가 다른 문자 세트를 사용할 수 있습니다. 통일 된 캐릭터 인코딩 관리가 없다면 다음과 같은 문제가 발생할 수 있습니다.
컨텐츠는 차량 코드를 표시합니다
데이터베이스가 저장되면 문자가 손상됩니다
페이지에 표시된 내용은 일치하지 않습니다
컨텐츠가 다른 언어간에 올바르게 표시되도록하려면 데이터베이스와 프론트 엔드 페이지가 동일한 문자 인코딩을 사용하도록해야합니다.
PHP에서 MySQLI Extension은 MySQL 데이터베이스를 연결하고 작동하는 편리한 인터페이스를 제공합니다. mysqli :: get_charset 함수는 현재 데이터베이스 연결의 문자 세트를 반환합니다. 데이터베이스 연결 및 페이지의 문자 인코딩이 일관되도록하여 문제를 피할 수 있습니다.
MySQL 데이터베이스에 연결할 때는 모든 언어의 문자가 지원되도록 문자 인코딩을 UTF-8로 명시 적으로 설정해야합니다. 다음 코드로 수행 할 수 있습니다.
<?php
// 만들다 MySQLi 데이터베이스 연결
$mysqli = new mysqli("localhost", "username", "password", "database_name");
// 연결이 성공했는지 확인하십시오
if ($mysqli->connect_error) {
die("연결이 실패했습니다: " . $mysqli->connect_error);
}
// 문자를 설정하십시오 UTF-8
if (!$mysqli->set_charset("utf8")) {
printf("실수:문자 세트를로드 할 수 없습니다 utf8: %s\n", $mysqli->error);
exit();
}
// 현재 연결된 문자 세트를 확인하십시오
echo "현재 문자 세트: " . $mysqli->get_charset()->charset;
?>
위의 코드는 다음과 같은 작업을 완료합니다.
데이터베이스에 연결하십시오.
모든 입력 및 출력이 UTF-8을 사용하여 인코딩되도록 문자를 UTF-8로 설정하십시오.
mysqli :: get_charset을 사용하여 현재 문자를 설정하고 출력하십시오.
데이터베이스 문자가 UTF-8으로 인코딩되도록 보장 한 후 프론트 엔드 페이지도 동일한 인코딩을 사용해야합니다. 아래와 같이 HTML 페이지의 메타 태그를 통해 문자 인코딩을 지정할 수 있습니다.
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>다국어 사이트</title>
</head>
<body>
<h1>欢迎访问我们的다국어 사이트!</h1>
<!-- 다른 페이지 내용 -->
</body>
</html>
여기서 Meta Charset = "UTF-8" 은 브라우저 페이지에 UTF-8 문자 인코딩을 사용하도록 사용하여 중국어 및 영어와 같은 다른 언어의 컨텐츠를 올바르게 표시 할 수 있도록 사용됩니다.
다국어 사이트에서 해당 콘텐츠는 일반적으로 사용자가 선택한 언어를 기반으로 데이터베이스에서 검색됩니다. 데이터베이스의 문자 인코딩과 페이지가 일관된 경우 이러한 내용을 얻거나 표시하는 데 아무런 문제가 없습니다.
예를 들어, 다음 코드를 사용하여 데이터베이스에서 다국어 컨텐츠를 얻을 수 있습니다.
<?php
// 가정 $mysqli 이미 연결되어 있습니다 MySQLi 예
// 중국 페이지 콘텐츠를 얻으십시오
$query = "SELECT title, content FROM pages WHERE language = 'zh' LIMIT 1";
$result = $mysqli->query($query);
if ($result) {
$row = $result->fetch_assoc();
echo "<h1>" . htmlspecialchars($row['title']) . "</h1>";
echo "<p>" . nl2br(htmlspecialchars($row['content'])) . "</p>";
} else {
echo "쿼리가 실패했습니다: " . $mysqli->error;
}
?>
이 예에서 HTMLSpecialchars 함수는 데이터베이스에서 페이지로 콘텐츠를 안전하게 출력하여 XSS 공격을 방지하는 데 사용됩니다.
mysqli :: get_charset 및 mysqli :: set_charset을 사용하면 문자 인코딩이 다국어 사이트에서 균일하게 관리되도록하여 갈망 및 표시 문제를 피할 수 있습니다. 데이터베이스에 연결할 때 올바른 문자 세트를 설정하고 프론트 엔드 페이지의 캐릭터 인코딩이 일관되도록하십시오. 이런 식으로 사용자는 사이트를 방문하는 언어에 관계없이 올바른 콘텐츠를 볼 수 있습니다.