2013-07-26 11 views
6

á, ã, ç 등의 라틴 문자로 된 페이지를 만들고 있습니다. 이 사이트는 SQL 데이터베이스에서 데이터를 가져옵니다. 나는 <head>에 사용하고 다음 HTML 악센트 문자가 괜찮이 헤더로
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/>
하지만, SQL 데이터 대신 ãoçã로 표시되고, 나는 UTF에 ISO-8859-1에서 charset을 변경하는 경우 -8, 모든 HTML 강조 문자는 (물음표)로 표시되며 SQL 데이터는 악센트를 나타냅니다.
모든 HTML 문자 또는 SQL 문자를 이스케이프하는 것 외에이를 고칠 수있는 방법이 있습니까?ISO-8859-1을 사용하는 경우 SQL 데이터에 UTF-8 및 이상한 문자를 사용하면 HTML의 물음표 문자가 표시됩니다.

추신 : 이미 mysql_set_charset('utf8');SET NAMES utf8을 시도했지만 나에게 효과가 없습니다.

+0

데이터베이스 정렬이란 무엇입니까? – Renato

+0

늦게 답변을 드려 죄송 합니다만 데이터 정렬은 UTF-8입니다. – Gus

답변

6

의 물음표가 표시되면 문서가 올바른 인코딩 (사용자의 경우 UTF-8이어야 함)으로 저장되지 않았거나 올바른 헤더 및/또는 메타 태그가 제공되지 않고 있습니다. 당신이 è 같은 특수 문자로 작업 할 경우

, HTML 문서는 UTF-8로 저장하고 UTF-8로 제공해야합니다

<meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 

는 또한 당신이 UTF-8을 사용할 필요가 당신의 데이터베이스 연결 :

... ("SET NAMES utf8");
... ("SET CHARACTER SET utf8");

그리고 마지막으로 데이터베이스 자체에 UTF-8을 사용해야합니다.

이미 알다시피 올바른 경로에 있습니다 ... 한 번에 한 가지만 시도하고 나머지는 무시하는 대신 "모두 사용" (위에서 설명한대로)해야합니다. 그것이 효과를 발휘하는 조합입니다. 간단히 말하면 : "UTF-8"로 간다면, "UTF-8"을 어디서나 생각하고 HTML 파일, 헤더, 메타 태그, 데이터베이스 연결 및 데이터베이스에 붙여야합니다. 도처에을 사용하고 을 "여기에 비트 UTF-8을, ISO에 비트를 모두" 대신 사용하십시오.

+2

내 문제는 HTML 문서였습니다. 내가 코모도 편집을 사용하고 있었으므로 UTF-8로 저장되지 않았습니다. 메모장에 저장했는데 이제 작동합니다! 도와 주셔서 감사합니다. 나는 이것에 대한 미래의 문제를 피하기 위해 코모도 편집 설정을 살펴볼 것이다. – Gus

+1

@Gus 기꺼이 고칠 수있었습니다. 글쎄, 나를 위해 할 일은 네가 좋은 주말 보내길 바란다. ;) –

+1

도움이되어 주셔서 감사 드리며 훌륭한 주말을 보내시기 바랍니다! – Gus