2009-10-04 8 views
3

Diacritic signs http://img98.imageshack.us/img98/3383/dijakritickiznakovi.gif크로아티아어 발음 구별 기호 (UTF-8)

그래서, 디스플레이 제목 belows로 기호는 그런 식으로 표시되어야합니다.
UTF-8 엔티티는 HTML (utf-8) 제목 아래에 나열되어 있습니다 (여기에는 목록 : LINK)
마지막 줄에는 내 데이터베이스에 저장된 내용이 표시됩니다.
db 테이블의 데이터 정렬은 utf8_unicode_ci입니다.
DB의 기호가 제 경우와 같지 않아야한다고 생각합니까? 데이터베이스에서로드 될 때 페이지에 올바르게 표시되지만 주어진 링크의 utf-8 테이블에서는 모든 테이블이 표시되지 않습니다. 내가 그 (것)들을 정확하게 볼지라도 다른 사람은 그렇지 않을 것입니까?

+0

어떤 프로그래밍 언어를 사용하고 있습니까? – sorin

답변

4

MySQL 테이블 charset을 설정하는 것만으로는 충분하지 않습니다. 클라이언트, 연결 및 결과에 대한 올바른 문자 집합을 설정해야합니다. 기본값은 서버마다 다를 수 있으며 데이터베이스는 이식성이 떨어집니다. 데이터베이스 내용이 다르게 표시되어 다른 서버로 이동 될 수 있습니다.

지금 몇 시간 동안 MySQL의에 슬로베니아어 텍스트를 저장 봤는데이 나를 위해 작동하는 것입니다 :

  • 당신이 연결 한 후 할 첫 번째 일은이 "SET NAMES utf8"쿼리
  • 을 발행하는 것 저장하려는 문자열이 utf-8인지 확인하십시오. 웹 페이지 양식에서 가져 오는 경우 페이지가 UTF-8인지 확인하십시오.
  • 브라우저를 탐색/편집 할 때주의해야합니다. 데이터베이스 내용 온라인 : PhpMysqlAdmin은 확실히 안전하지 않습니다.

희망이 도움이됩니다.

+0

좀 더 정확하게 말씀 해주시겠습니까? 이 쿼리를 정확히 어디에 넣어야하는지 모르겠습니다. 데이터베이스에 각 쿼리에 넣을 수 있습니까? 나는 그 SET NAMES utf8이 3 개의 변수 (character_set_client, character_set_results, character_set_connection)를 대체하지만이 쿼리를 어디에 넣을 지 명확하지 않다는 것을 알고 있습니다. 도와 줘서 고마워! –

+0

그냥 데이터베이스에 첫 번째 쿼리를 만드십시오. 바로 뒤에 mysql_connect ($ server, $ user, $ password); – djn

+1

잘못된 버튼을 눌러야합니다. 내가 쓰려고하는 것은 : mysql_connect ($ server, $ user, $ password); mysql_select_db ($ dbname); mysql_query ("SET NAMES utf8"); // 매우 첫 번째 쿼리 ... 이렇게하면 연결이 서버/클라이언트 독립적 일 수 있습니다. 필자가이 방법으로 작업을 시작한 이후 MySQl Migration Toolkit을 통해 내 Windows devel 서버에서 Linux 제작 상자로 데이터베이스를 이동하거나 HeidiSQL 및 SSH 터널을 사용하여 db-to-db를 복사 할 수 있습니다. 모든 charset 불일치가 발생하지 않았습니다. – djn

3

데이터베이스에 HTML로 인코딩 된 문자열을 저장하려는 것으로 보입니다. 그렇게하지 않으면 안정적으로 검색하는 것과 같은 문자열 작업을 수행 할 수있는 기능이 중단됩니다. 원시 UTF-8로 인코딩 된 문자를 데이터베이스의 바이트로 저장할 수 있어야합니다.

데이터베이스를 읽는 데 사용하는 환경이나 맨 아래에 '잘못된'문자열 (ISO-8859-1 인코딩을 사용하여 읽은 UTF-8 바이트)을 얻는 방법을 말하지 않습니다. 웹 페이지에 표시되는 경우 (그리고 헤더에 UTF-8을 지정하거나 <meta> 태그를 지정하는 경우) 아마도 꽤 많이있을 것입니다.