source

utf8_general_ci와 utf8_unicode_ci의 차이점은 무엇입니까?

nicesource 2022. 12. 24. 17:21
반응형

utf8_general_ci와 utf8_unicode_ci의 차이점은 무엇입니까?

중복 가능성:
utf8_general_ci와 utf8_unicode_ci의 차이점은 무엇입니까?

mysql 데이터베이스에 유망해 보이는 유니코드 옵션이 두 가지 있습니다.

utf8_general_ci unicode (multilingual), case-insensitive
utf8_unicode_ci unicode (multilingual), case-insensitive

utf8_general_ci와 utf8_unicode_ci의 차이점은 무엇입니까?데이터베이스를 설계할 때 하나를 선택하면 어떤 효과가 있습니까?

utf8_general_ci는, Unicode 의 매우 심플하고, Unicode 의 매우 파손된 조합으로, 일반적인 Unicode 텍스트에 대해서 잘못된 결과를 나타내고 있습니다.기능:

  • 표준 분해를 위해 Unicode 정규화 양식 D로 변환
  • 조합된 문자를 삭제합니다.
  • 대문자로 변환하다

Unicode에서는 Unicode 대소문자가 인식되지 않기 때문에 Unicode에서는 올바르게 동작하지 않습니다.유니코드 케이스만 해도 ASCII를 중시하는 접근방식보다 훨씬 복잡합니다.예를 들어 다음과 같습니다.

  • 「ß」의 소문자는 「"」이지만, 「"」의 대문자는 「SS」입니다.
  • 두 개의 소문자 그리스 시그마가 있지만 대문자 시그마는 하나뿐입니다. "그리스 시그마"를 고려하십시오.
  • """와 같은 문자는 "o"와 분음 기호로 분해되지 않으며, 이는 올바르게 정렬되지 않음을 의미합니다.

다른 많은 미묘함이 있다.

  1. utf8_unicode_ci표준 Unicode 대조 알고리즘을 사용하여 이른바 확장 및 연결을 지원합니다.예를 들어 독일어 문자 ((U+00DF 문자 SHARP S)는 "ss" 문자 u(U+0152 LATIN 대문자 LIGATURE OE) 근처에 정렬됩니다.

utf8_general_ci는 확장/리거처를 지원하지 않습니다.이러한 모든 문자를 단일 문자로 정렬하고 경우에 따라서는 잘못된 순서로 정렬하는 경우가 있습니다.

  1. utf8_unicode_ci는 일반적으로 모든 스크립트에 대해 더 정확합니다.예를 들어, 키릴 블록의 경우:utf8_unicode_ci이 모든 언어에 대응합니다.러시아어, 불가리아어, 벨라루스어, 마케도니아어, 세르비아어, 우크라이나어.단, utf8_general_ci는 키릴 문자의 러시아어와 불가리아어 서브셋에만 적합합니다.벨라루스어, 마케도니아어, 세르비아어, 우크라이나어에서 사용되는 추가 문자는 잘 분류되지 않습니다.

비용utf8_unicode_ci조금 느리다는 것입니다.utf8_general_ci하지만 정확성을 위해 지불하는 대가입니다.즉석에서 틀린 답을 얻을 수도 있고, 매우 느린 답을 얻을 수도 있습니다.당신의 선택이다.틀린 답을 하는 것을 정당화하는 것은 매우 어렵기 때문에, 가장 좋은 것은 다음과 같습니다.utf8_general_ci하지 않습니다입니다.utf8_unicode_ci틀린 답을 원하신다면요

출처 : http://forums.mysql.com/read.php?103,187048,188748#msg-188748

MySQL 문서Unicode 문자 집합에서 다음을 수행합니다.

세트에 , Unicode 를 ._general_ci._unicode_ci 「」, 「」의 등입니다.utf8_general_ci 조금 덜 정확합니다.utf8_unicode_ci ★★★★★★★★★★★★★★★★★★★★★★★★」utf8_unicode_ci는 확장 등의 매핑을 지원합니다.즉, 어떤 문자가 다른 문자의 조합과 동등한 경우입니다.들어 및 에서는 "이러한 언어를합니다.ß는 '아니다'와.ss "utf8_unicode_ci는 축소와 무시할 수 없는 문자도 지원합니다. utf8_general_ci는 확장, 축소 또는 무시할 수 없는 문자를 지원하지 않는 레거시 조합입니다.문자 간 일대일 비교만 가능합니다.

언급URL : https://stackoverflow.com/questions/1036454/what-are-the-differences-between-utf8-general-ci-and-utf8-unicode-ci

반응형