2013-09-23 1 views
1

하는 이유는 데이터베이스에서 키릴 문자를 읽고있을 때 괜찮아요,하지만 난 선택 - 옵션 메뉴에서이 텍스트를 넣을 때 이상한 문자cyrillized 단어

http://prikachi.com/images/813/6589813g.jpg http://prikachi.com/images/811/6589811I.jpg

를 얻을 수 내 HTML에서

내가 사용 ... 내가 UTF-8로 사방에 넣어하지만 난 모르는 생각 :

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
+0

확인 어떤 목표 테이블 필드 : \t utf8_general_ci는 –

+0

여기 cherset에 의해 발생하는 문제는 UTF-8이어야한다 (DB에 데이터를 삽입하거나 사용 -general) 및 charset은 db에 연결할 때 설정됩니다. MySQL의, PDO 및 mysql_ * 모두 –

+0

연결시 기본 문자 집합을 설정하는 기능이 있습니다. 쿼리를 실행하기 전에 다음 중 하나를 실행하십시오 : SET NAMES utf8 –

답변

2

대부분의 경우 동일 문자셋 (utf-8) 을 사용하지 않고 모든 지점에서 데이터가 엉망이 될 수 있습니다. 당신이하고있는 정확하게에 따라, 당신은/변경 다음 사항 중 하나 이상을 추가해야합니다 (어쩌면 그것은 당신이 잊고 SET CHARSET/mysql_set_charset의) :

  • 는 UTF-8을 사용하기 위해 MySQL을 말한다. 이것을하기 위해서, 당신의 저에게 이것을 추가하십시오.CNF는 :

    collation_server = utf8_unicode_ci 
    character_set_server = utf8 
    
  • MySQL과 상호 작용하기 전에,이 두 querys을 보내 : 또는

    SET NAMES 'utf8'; 
    CHARSET 'utf8'; 
    

    또는, PHP 연결을 연 후이 작업을 수행 할 수 있습니다 :

    mysql_set_charset('utf8', $conn); // when using the mysql_-functions 
    mysqli::set_charset('utf8') // when using mysqli 
    
  • 세트 UTF-8 데이터베이스

    CREATE DATABASE `my_db` DEFAULT CHARACTER SET 'utf8'; 
    
  • 의 디폴트 캐릭터 세트와 같은 테이블에 대해 동일한 작업을 수행합니다

    CREATE TABLE `my_table` (
        -- ... 
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
    
  • 클라이언트를 가정 브라우저 인 경우 콘텐츠를 utf-8 및 t 그는 올바른 헤더 :

    <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 
    
  • 하고, 마지막으로, 말씀 :

    header('Content-type: text/html; charset=utf-8'); 
    

    이 메타 태그를 추가, 브라우저가 이해 정말 확인하기 utf-8을 사용하여 양식을 제출하는 브라우저

    당신은 모든 문자열은 또한 정렬 다음이 저장
+1

이것은 매우 철저한 것 같습니다 – allen213

+0

많은 사람들이 정말 그 중 일부를 놓쳤습니다 –

+0

mysqli :: set_charset ('utf8') <<< 미리 설정된 charset을 먼저로드 한 다음 연결이 설정 되 자마자 utf8 charset을로드합니까? 이 경우 성능 문제가됩니다. 그래서 charset의 근원은 무엇입니까? 모든 연결마다 그것을 조정하지 않고 어디에서 영원히 바꿀 수 있습니까? – henk

관련 문제