먼저, MySQL 테이블이 인코딩으로 UTF-8을 사용하고 있는지 확인하십시오. 이 경우, 그것은 다음과 같이 표시됩니다
mysql> SHOW CREATE TABLE Users (
...
) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 |
다음으로, 반드시 당신의 HTML 페이지가 UTF-8을 표시하도록 설정되어 있는지 확인 :
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
</head>
....
</html>
그런 다음 그것을 작동합니다.
편집 : 나는 의도적으로 내가 이미 고려 된 생각했기 때문에, 데이터 정렬에 대해 이야기하지만, 모든 사람의 이익을 위해, 내가이 답변에 좀 더 추가 할 수 없습니다.
당신의 상태,
나는 MySQL의 테이블 정렬에 UTF-8로 설정 한 캐릭터 세트를 ... 있습니다.
테이블 정렬은 charset과 동일하지 않습니다.
데이터 정렬은 문자 세트를 다른 문자 세트로 자동 변환하려고 시도하는 것입니다. 문의 목적은입니다. 예를 들어, latin1의 charset이 있고 UTF-8의 데이터 정렬이있는 경우 SELECT * FROM foo WHERE bar like '% - %'; (UTF-8 U + 2014)를 L + 0151 또는 U + 2014와 일치하는 latin1의 charset이있는 테이블에 추가합니다. 당신이 UTF-8로 인코딩 된 웹 페이지에이 라틴 인코딩 된 문자 출력 인 경우에 이렇게 우연히
하지 ..., 다음과 같은 얻을 것이다 :
이것은 â € œtestâ €입니다.
정확하게 문제의 출력 인 것 같습니다. 여기에 복사 할 HTML이 있습니다 :
<?php
$string = "This is a “test”.";
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf8"/>
</head>
<body>
<p><?php echo $string; ?></p>
</body>
</html>
이 파일을 latin1에 저장했는지 확인하십시오.
테이블이이 쿼리 실행되도록 설정되어 문자셋을 확인하려면 : (당신이 여러 영어 이외의 언어를 사용하지 않는 한) 당신의 용도에
SELECT CCSA.character_set_name, TABLE_COLLATION FROM information_schema.`TABLES` T,
information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA
WHERE CCSA.collation_name = T.table_collation
AND T.table_schema = "database"
AND T.table_name = "table";
만 적절한 결과 :
대한
+--------------------+-----------------+
| character_set_name | TABLE_COLLATION |
+--------------------+-----------------+
| utf8 | utf8_general_ci |
+--------------------+-----------------+
덕분에 upvotes ;-) 내가 여기에 대한 답을 찾을
매우 지능적인 답변을 주셔서 감사합니다. 시어 도어 - 탁월한 답변으로 과거 PHP OOP 관련 질문에 많은 도움을 주셨습니다. 그러나 여기에 응답하려면 - 그곳에갔습니다. 이미 내 게시물에 언급했다. 대부분의 다른 UTF-8 도구는 이미 작동합니다. 그것은 펑키 한 행동을하는 똑똑한 따옴표입니다. – Volomike
솔직히 내가 위를 시도했다고 말한 곳을 보지 못했습니다. 나는 그것을 다시 읽었지만 당신이 이것을 언급 한 곳을 여전히 볼 수 없다;/나는 당신에게 흔히있는 문제를 보여 주었다. 세 번째 단계는 입력 된 문자를 확인하는 것입니다. 하지만 네가 이미 그걸 생각하고 있다고 생각 했어. 내가 틀렸다고 생각해. –
"데이터베이스에 유로화와 영국 파운드를 쓰려고하면 문자 집합이 포함 된 페이지 HTML, richtext control IFRAME HTML 및 MySQL 테이블 데이터 정렬에서 UTF-8로 설정되어 있기 때문에 문자는 정상적으로 처리됩니다 모든 것이 그 앞에있다. " – Volomike