2010-07-28 4 views
0

utf8_encode() & utf8_decode() 함수를 처리 할 필요가 없도록 내 사이트를 UTF-8로 완전히 전환하려고합니다.my.cnf의 적절한 MySQL 문자 집합/데이터 정렬 변수는 무엇입니까?

내 테이블의 데이터 정렬을 올바르게 설정했으며 임시로 쿼리 SET NAMES utf8을 사용하여 my.cnf 파일을 덮어 씁니다.

내 질문은 - my.cnf에 많은 문자 집합과 데이터 정렬 변수가 있으며 일부는 혼자있게해야한다고 생각합니다 ... SET NAMES utf8의 효과를 얻기 위해 어떤 것을 변경해야합니까?

는 (내 테이블의 정렬이 utf8_unicode_ci입니다.) 특정 정렬 요구와 lnaguage를 저장하고 그렇게하지 않으면

character_set_client | latin1 | 
character_set_connection | latin1 | 
character_set_database | latin1 | 
character_set_filesystem | binary | 
character_set_results | latin1 | 
character_set_server | latin1 | 
character_set_system | utf8 | 

collation_connection | latin1_swedish_ci | 
collation_database | latin1_swedish_ci | 
collation_server | latin1_swedish_ci | 
+0

문자 집합과 데이터 정렬은 사용자에게 알려주는 것과 같은 것이 아닙니다. MySQL은 기본적으로'latin1_swedish_ci'의 데이터 정렬과'UTF-8'의 문자 세트를 기본으로합니다. 두 가지 사이에 좋은 설명이 질문을 확인하십시오 http://stackoverflow.com/questions/341273/what-does-character-set-and-collation-mean-exactly – ubiquibacon

+0

상대 답변은 [여기] (http : // stackoverflow .com/questions/3513773/change-mysql-default-character-set-utf8-in-my-cnf/3513812 # 3513812). –

답변

0

글쎄, 데이터 정렬, utf8_unicode_ci 괜찮을 주로 정렬입니다.

character_set_* 값은 WHERE 절이나 IF/CASE 문과 같은 장소에서 내부적으로 값을 검사하는 데 사용되며 CHAR_LENGTH(), REPLACE(), SUBSTRING()과 같은 문자열 함수는 이러한 종류의 항목을 검사합니다.

일반적으로 말해서, 그들은 모든이 동일해야 filesystem을 제외하고 (이 경우, utf8에) - 나는 당신이 그에서 멀리 이동해야 할 필요가 없다면 진에서 그 유지 권하고 싶습니다.

+0

확실히이 질문에 영감을 준 파일 시스템/바이너리 설정이었습니다. 저와 저는 각각이 구체적으로 무엇에 관한 문서를 찾을 수 없었습니다. 제 본능은 모든 것을 utf8/utf8_unicode_ci로 바꾸는 것이 었습니다. 그러나 바이너리 설정이 내 자신감을 떨어 뜨 렸습니다. 나는 데이터 정렬이 다르다는 것을 알고 있었지만, 동시에 latin1_swedish_ci를 사용하는 것이 나에게 의미가 없었기 때문에 UTF-8로 전환했습니다. 일관성을 위해서라면. 어쨌든, 답변 주셔서 감사합니다 ... 나는'character_set_filesystem'을 제외한 모든 것을 바꿀 것이라고 생각합니다. – JKS