UTF-8, UTF-16 및 UTF-32


486

UTF-8, UTF-16 및 UTF-32의 차이점은 무엇입니까?

나는 그들이 모두 유니 코드를 저장하고 각각 다른 바이트 수를 사용하여 문자를 나타냅니다. 다른 것을 선택하면 이점이 있습니까?


36
유니 코드의 작동 방식에 관심이 있다면이 비디오를 시청하십시오. youtube.com/watch?v=MijmeoH9LT4

1
이 비디오는 UTF-8에 중점을두고 가변 길이 인코딩의 작동 방식을 잘 설명하며 고정 길이 ASCII 만 읽거나 쓰는 컴퓨터와 대부분 호환됩니다. UTF-8 인코딩을 디자인 할 때 유니 코드 사용자는 현명했습니다.

1
전환 및 비교를위한 온라인 도구 를 만들었습니다 .
Amit Kumar Gupta 1

1
UTF-8은 대부분의 최신 파일 에서 저장된 파일을 위한 사실상의 표준입니다 . 보다 구체적으로, HTML 및 구성 및 번역 파일에 가장 널리 사용되는 인코딩입니다 (예 : Minecraft는 모든 텍스트 정보에 대해 다른 인코딩을 허용하지 않습니다). UTF-32은 내부 메모리 표현을 위해 신속 하고, UTF-16 가지입니다 되지 않는 , 현재 역사적인 이유 (대한 Win32에서 만 사용 UTF-16이었다 고정 길이 윈도우 95이 일을했다)
Kotauskas

@VladislavToncharov UTF-16은 고정 길이 인코딩이 아닙니다. UCS-2와 혼동하고 있습니다.

답변:


373

UTF-8은 ASCII 블록과 같은 8 비트로 인코딩하기 때문에 ASCII 문자가 텍스트 블록에서 대부분의 문자를 나타내는 경우 이점이 있습니다. ASCII 문자 만 포함하는 UTF-8 파일은 ASCII 파일과 동일한 인코딩을 갖는 것이 유리합니다.

UTF-16은 주로 문자 당 2 바이트를 사용하므로 ASCII가 우세하지 않은 경우에 더 좋습니다. UTF-8은 대부분의 문자에 대해 UTF-16이 2 바이트에 불과한 상위 문자에 3 바이트 이상을 사용하기 시작합니다.

UTF-32는 가능한 모든 문자를 4 바이트로 처리합니다. 이것은 꽤 부풀어 오른다. 나는 그것을 사용하는 것의 이점을 생각할 수 없다.


165
UTF-32의 장점 : 저장된 데이터를 문자 별 처리와 같이 32 비트 유니 코드 코드 포인트로 디코딩 할 필요가 없습니다. 코드 포인트는 이미 배열 / 벡터 / 문자열에 있습니다.
richq

22
휠을 다시 구현 해야하는 경우 구문 분석하기가 더 쉽습니다.
Paul McMillan

24
UTF-8은 네트워크 전송에 이점이 있습니다. 한 번에 한 바이트 씩 데이터를 전송하기 때문에 엔디안에 대해 걱정할 필요가 없습니다 (4가 아닌).
Tim Čas

30
@richq 코드 포인트가 항상 문자와 일치하지는 않으므로 UTF-32에서 문자 별 처리를 수행 할 수 없습니다.
hamstergene

4
UTF-32의 장점 : 문자열 조작이 utf-8에 비해 훨씬 빠릅니다
Wes

331

한마디로 :

  • UTF-8 : 가변 폭 인코딩, 하위 버전과 ASCII 호환. ASCII 문자 (U + 0000 ~ U + 007F)는 1 바이트, 코드 포인트 U + 0080 ~ U + 07FF는 2 바이트, 코드 포인트 U + 0800 ~ U + FFFF는 3 바이트, 코드 포인트 U + 10000 ~ U + 10FFFF 4 바이트를 사용하십시오. 영어 텍스트에는 좋지만 아시아 텍스트에는 좋지 않습니다.
  • UTF-16 : 가변 폭 인코딩. 코드 포인트 U + 0000 ~ U + FFFF는 2 바이트, 코드 포인트 U + 10000 ~ U + 10FFFF는 4 바이트를 사용합니다. 영어 텍스트에는 좋지 않으며 아시아 텍스트에는 좋습니다.
  • UTF-32 : 고정 폭 인코딩. 모든 코드 포인트는 4 바이트를 사용합니다. 거대한 메모리 호그이지만 빠르게 작동합니다. 드물게 사용되는.

길게 : Wikipedia : UTF-8 , UTF-16UTF-32를 참조하십시오 .


65
@ spurrymoses : 나는 데이터 바이트가 차지하는 공간의 양을 엄격히 언급하고 있습니다. UTF-8에는 아시아 문자 당 3 바이트가 필요하지만 UTF-16에는 아시아 문자 당 2 바이트 만 필요합니다. 요즘 컴퓨터에는 프로그램 메모리에 저장된 평균 텍스트 양에 비해 많은 양의 메모리가 있기 때문에 이것은 큰 문제가 아닙니다.
Adam Rosenfield

12
UTF-32는 더 이상 거의 사용되지 않습니다 ... osx 및 Linux의 wchar_t기본값은 4 바이트입니다. gcc는 -fshort-wchar크기를 2 바이트로 줄이지 만 std lib와의 이진 호환성을 중단시키는 옵션 이 있습니다.
vine'th

9
@PandaWood ofcource UTF-8은 모든 문자를 인코딩 할 수 있습니다! 그러나 메모리 요구 사항을 UTF-16의 메모리 요구 사항과 비교 했습니까? 요점을 놓친 것 같습니다!
Ustaman Sangat

16
누군가 UTF-8이 유니 코드를 인코딩 할 수없는 것을 포함하여 모든 인코딩 형식의 맥락에서 "아시아 텍스트에 적합하지 않다"고 말하면 물론 잘못된 것입니다. 그러나 그것은 문맥이 아닙니다. 메모리 요구 사항의 맥락은 질문 (및 답변)이 UTF-8, UTF-16 및 UTF-32를 비교하고 있다는 것에서 비롯됩니다. UTF-8, UTF-16 및 UTF-32는 모두 아시아 텍스트를 인코딩하지만 다른 양의 메모리 / 스토리지를 사용합니다. 상대적인 장점은 당연히 메모리 요구 사항과 관련이 있습니다. "좋지 않다"! = "좋지 않다".
Paul Gregory

5
@ McGafter : 물론 있습니다. 신뢰를 원한다면 The Unicode Consortium 의 말로 바로 가십시오 . UTF- * 인코딩에 대한 설명은 2.5 장을 참조하십시오. 그러나 인코딩에 대한 간단하고 높은 수준의 이해를 얻기 위해 Wikipedia 기사가 훨씬 접근하기 쉬운 소스라는 것을 알았습니다.
Adam Rosenfield

116
  • UTF-8은 1-4 바이트의 변수 입니다.

  • UTF-16은 변수 2 또는 4 바이트입니다.

  • UTF-32는 4 바이트 로 고정되어 있습니다.

참고 : UTF-8은 최신 규칙에 따라 1-6 바이트를 사용할 수 있습니다. https://lists.gnu.org/archive/html/help-flex/2005-01/msg00030.html


35
UTF8은 실제로 1에서 6 바이트입니다.
Urkle

6
유니 코드 v6.3이 U-0010FFFF로 끝나더라도 UTF32 / LE / BE의 전체 범위에 U-00200000-U-7FFFFFFF가 포함되므로 @Urkle은 기술적으로 정확합니다. 방법은 다음과 같습니다 ENC에 / DEC 5와 6 바이트 UTF8의 좋은 고장입니다 : lists.gnu.org/archive/html/help-flex/2005-01/msg00030.html

4
관련 참조 부품 및 해당 소스와 함께 백업합니까?
n611x007

20
@Urkle 아니오, UTF-8은 5 또는 6 바이트 일 수 없습니다. 유니 코드 코드 포인트는 21 비트로 제한되며 UTF-8에서 4 바이트로 제한됩니다. (물론 임의의 큰 정수를 인코딩하기 위해 UTF-8의 원칙을 확장 할 수는 있지만 유니 코드는 아닙니다.) RFC 3629를 참조하십시오.
rdb

11
인용 위키피디아 : 2003 년 11 월 UTF-8 문자 인코딩의 제약 조건과 일치하도록 UTF-8이 RFC 3629에 의해 제한되었습니다. 상위 및 하위 대리 문자에 해당하는 코드 포인트를 명시 적으로 금지하여 3 바이트 시퀀스의 3 % 이상을 제거했습니다. U + 10FFFF로 끝나는 경우 4 바이트 시퀀스의 48 % 이상과 5 바이트 및 6 바이트 시퀀스가 ​​모두 제거되었습니다.
Adam Calvet Bohl

79

유니 코드는 하나의 거대한 문자 집합을 정의하여 하나의 고유 한 정수 값을 모든 그래픽 심볼에 할당합니다 (대부분 단순화 된 것이지만 실제로는 아니지만이 질문의 목적을 위해 충분히 가깝습니다). UTF-8 / 16 / 32는 이것을 인코딩하는 다른 방법입니다.

간단히 말해 UTF-32는 각 문자에 대해 32 비트 값을 사용합니다. 따라서 모든 문자에 고정 너비 코드를 사용할 수 있습니다.

UTF-16은 기본적으로 16 비트를 사용하지만 65k 가능한 문자 만 제공합니다. 따라서 일부 문자는 16 비트 값 쌍을 사용합니다.

UTF-8은 기본적으로 8 비트 값을 사용합니다. 즉, 127 개의 첫 번째 값은 고정 너비 1 바이트 문자입니다 (가장 큰 비트는 이것이 멀티 바이트 시퀀스의 시작임을 나타내는 데 사용됩니다. 실제 문자 값에 대한 비트). 다른 모든 문자는 최대 4 바이트의 시퀀스로 인코딩됩니다 (메모리가 제공되는 경우).

그리고 그것은 우리를 이점으로 이끌어줍니다. 모든 ASCII 문자는 UTF-8과 직접 호환되므로 레거시 앱을 업그레이드하는 경우 UTF-8이 일반적이고 명백한 선택입니다. 거의 모든 경우에 가장 적은 메모리를 사용합니다. 반면에 문자의 너비에 대해서는 보장 할 수 없습니다. 1, 2, 3 또는 4 자 너비 일 수 있으므로 문자열 조작이 어렵습니다.

UTF-32은 메모리를 가장 많이 (각 문자 폭 고정 된 4 바이트)를 사용하지만, 다른 한편으로는, 당신은, 반대 알고 문자열 조작이 훨씬 간단하게, 그래서 모든 문자가이 정확한 길이를 가지고있다. 문자열의 길이를 바이트 단위로 간단히 문자열의 문자 수를 계산할 수 있습니다. UTF-8로는 그렇게 할 수 없습니다.

UTF-16은 타협입니다. 대부분의 문자를 고정 너비 16 비트 값에 맞출 수 있습니다 . 중국어 기호, 음표 또는 기타 문자가없는 한 각 문자의 너비가 16 비트라고 가정 할 수 있습니다. UTF-32보다 적은 메모리를 사용합니다. 그러나 그것은 어떤면에서 "두 세계 중 최악"입니다. 거의 항상 UTF-8보다 많은 메모리를 사용하며 UTF-8 (가변 길이 문자)을 괴롭히는 문제를 피하지는 않습니다.

마지막으로, 플랫폼이 지원하는 것과 함께 진행하는 것이 종종 도움이됩니다. Windows는 내부적으로 UTF-16을 사용하므로 Windows에서는 이것이 명백한 선택입니다.

리눅스는 조금씩 다르지만 일반적으로 유니 코드와 호환되는 모든 것에 UTF-8을 사용합니다.

짧은 대답 : 세 가지 인코딩 모두 동일한 문자 세트를 인코딩 할 수 있지만 각 문자를 다른 바이트 시퀀스로 나타냅니다.


12
유니 코드가 각 그래픽 심볼에 고유 한 정수를 할당한다고 말하는 것은 부정확합니다 . 각 코드 포인트에 이러한 코드를 할당하지만 일부 코드 포인트는 보이지 않는 제어 문자 이며 일부 그래픽 심볼에는 여러 코드 포인트가 있어야합니다.
tchrist

15
@ tchrist : 예, 부정확합니다. 문제는 유니 코드를 정확하게 설명하려면 수천 페이지를 작성해야한다는 것입니다. 인코딩의 차이점을 설명하기 위해 기본 개념을 이해하고자했습니다.
jalf

@jalf 롤 바로 그래서 기본적으로 당신이 작성해야 유니 코드를 설명하기 위해 유니 코드 코어 사양
저스틴 옴

@tchrist 더 구체적으로, 제공된 프리미티브에서 중국어 기호를 구성 할 수 있습니다 (그러나 동일한 차트에 있으므로 디스크 또는 RAM과 같은 공간을 사용하여 인코딩하는 대신). 내장 된 것들.
Kotauskas 19

44

유니 코드 는 표준이며 UTF-x 에 관한 것이며 실제적인 목적을위한 기술적 구현으로 생각할 수 있습니다.

  • UTF-8- " 크기 최적화 됨 ": 라틴 문자 기반 데이터 (또는 ASCII)에 가장 적합하며 문자 당 1 바이트 만 필요하지만 크기는 기호에 따라 커집니다 (최악의 경우 문자 당 최대 6 바이트까지 증가 할 수 있음)
  • UTF-16- " balance ": 문자 당 최소 2 바이트를 사용하므로 문자 처리를 쉽게하기 위해 크기가 고정 된 기존 주류 언어 세트에 충분합니다 (그러나 크기는 여전히 가변적이며 문자 당 최대 4 바이트까지 증가 할 수 있음) )
  • UTF-32- " performance ": 고정 크기 문자 (4 바이트)의 결과로 간단한 알고리즘을 사용할 수 있지만 메모리 단점이 있습니다.

«주류 언어»세계 여러 곳에서 그 주류가 아닙니다 ^^
tuxayo

2
UTF-16은 실제로 비 ASCII 문자에 맞게 크기가 최적화되었습니다. 그것은 실제로 어떤 언어를 사용할 지에 달려 있습니다.
tuxayo

@tuxayo는 전적으로 아시아 지역의 한자 및 간지 문자 집합에 주목할 가치가 있다고 전적으로 동의합니다.
rook

최고의 답변이어야합니다. 여기에 묻기에는 너무 정확합니다.
Michal Štein

28

나는 내 blogpost에 간단한 설명을하려고했습니다 .

UTF-32

모든 문자 를 인코딩하려면 32 비트 (4 바이트)가 필요 합니다. 예를 들어,이 체계를 사용하여 "A"문자 코드 포인트를 나타내려면 32 비트 이진수로 65를 작성해야합니다.

00000000 00000000 00000000 01000001 (Big Endian)

자세히 살펴보면 ASCII 체계를 사용할 때 가장 오른쪽에있는 7 비트가 실제로 동일한 비트임을 알 수 있습니다. 그러나 UTF-32는 고정 너비 방식 이므로 세 개의 추가 바이트를 첨부해야합니다. "A"문자 만 포함하는 두 개의 파일이있는 경우 하나는 ASCII로 인코딩되고 다른 하나는 UTF-32로 인코딩되며 크기는 1 바이트 및 4 바이트입니다.

UTF-16

많은 사람들은 UTF-32가 고정 폭 32 비트를 사용하여 코드 포인트를 나타내므로 UTF-16은 고정 폭 16 비트라고 생각합니다. 잘못된!

UTF-16에서 코드 포인트는 16 비트 또는 32 비트로 표시 될 수 있습니다. 따라서이 체계는 가변 길이 인코딩 시스템입니다. UTF-32에 비해 장점은 무엇입니까? 적어도 ASCII의 경우 파일 크기는 원본의 4 배가 아니지만 (아직 두 번) ASCII와 호환되지 않습니다.

7 비트는 "A"문자를 표현하기에 충분하므로 UTF-32와 같이 4 대신 4 바이트를 사용할 수 있습니다. 다음과 같이 보일 것입니다 :

00000000 01000001

UTF-8

UTF-8에서 코드 포인트는 32, 16, 24 또는 8 비트를 사용하여 표현 될 수 있으며 UTF-16 시스템으로서 가변 길이 인코딩 시스템이기도합니다.

마지막으로 ASCII 인코딩 시스템을 사용하여 "A"를 나타내는 것과 같은 방식으로 "A"를 나타낼 수 있습니다.

01001101

UTF-16이 실제로 UTF-8보다 나은 작은 예 :

중국어 문자 "語"를 고려하십시오. UTF-8 인코딩은 다음과 같습니다.

11101000 10101010 10011110

UTF-16 인코딩은 더 짧은 반면 :

10001010 10011110

표현과 해석 방법을 이해하려면 원래 게시물을 방문하십시오.


19

UTF-8

  • 바이트 순서의 개념이 없다
  • 문자 당 1-4 바이트 사용
  • ASCII는 인코딩의 호환 가능한 하위 집합입니다
  • 완전히 자체 동기화하는 것, 예를 들어 스트림의 어느 곳에서나 삭제 된 바이트는 최대 하나의 문자 만 손상됨
  • 거의 모든 유럽 언어가 문자 당 2 바이트 이하로 인코딩됩니다.

UTF-16

  • 알려진 바이트 순서로 구문 분석되거나 바이트 순서 표시 (BOM)를 읽어야합니다.
  • 문자 당 2 또는 4 바이트를 사용합니다.

UTF-32

  • 모든 문자는 4 바이트입니다
  • 알려진 바이트 순서로 구문 분석되거나 바이트 순서 표시 (BOM)를 읽어야합니다.

UTF-8은 대부분의 문자가 CJK (중국어, 일본어 및 한국어) 문자 공간이 아닌 경우 가장 공간 효율적입니다.

UTF-32는 바이트 배열로의 문자 오프셋을 통한 임의 액세스에 가장 적합합니다.


UTF-8에서 "자체 동기화"는 어떻게 작동합니까? 1 바이트 및 2 바이트 문자에 대한 예를 제공 할 수 있습니까?
Koray Tugay

2
@KorayTugay 유효한 더 짧은 바이트 문자열은 더 이상 긴 문자에 사용되지 않습니다. 예를 들어 ASCII의 범위는 0-127이며 모든 1 바이트 문자는 0xxxxxxx이진 형식 입니다. 모든 2 바이트 문자 110xxxxx는의 두 번째 바이트로 시작합니다 10xxxxxx. 따라서 2 바이트 문자의 첫 번째 문자가 손실되었다고 가정 해 봅시다. 당신이 볼 자마자 10xxxxxx선행하지 않고 110xxxxxx, 당신은 바이트가 손실 또는 손상, 및 폐기되었다는 것을 확실히 확인할 수 다시 유효한 첫 번째 바이트 볼 때까지, 그리고 이동 문자 (서버 또는 어떤에서 또는 재 요청을) .
Chris

1
문자에 대한 오프셋이 있으면 해당 문자에 대한 오프셋이 있습니다. utf8, utf16 또는 utf32는이 경우에도 동일하게 작동합니다. 즉, 바이트 배열로의 문자 오프셋에 의한 임의 액세스에 모두 동일합니다. utf32가 utf8보다 문자를 더 잘 계산한다는 생각은 완전히 잘못된 것입니다. 코드 포인트 (인 없는 , 이는 다시 문자 같은 한숨에 .. 자모와 동일하지 않다) UTF32 32 비트 폭이 8 내지 32 UTF8 비트 있지만, 문자 다중 코드 포인트를 걸쳐있다 사람들이 utf32가 utf8보다 낫다고 주장하는 주요 이점을 파괴합니다.
Clearer

14

MySQL에서 UTF-8과 UTF-16 사이의 데이터베이스 성능을 비교하기 위해 몇 가지 테스트를 수행했습니다.

업데이트 속도

UTF-8

여기에 이미지 설명을 입력하십시오

UTF-16

여기에 이미지 설명을 입력하십시오

삽입 속도

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

속도 삭제

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오


14

UTF-32에서 모든 문자는 32 비트로 코딩됩니다. 장점은 문자열의 길이를 쉽게 계산할 수 있다는 것입니다. 단점은 각 ASCII 문자에 대해 추가 3 바이트를 낭비한다는 것입니다.

UTF-8 문자의 길이는 가변적이며 ASCII 문자는 1 바이트 (8 비트)로 코딩되고 대부분의 서양 특수 문자는 2 바이트 또는 3 바이트 (예 : €는 3 바이트)로 코딩되며보다 이국적인 문자는 차지할 수 있습니다 4 바이트까지 분명한 단점은 우선 순위가 문자열의 길이를 계산할 수 없다는 것입니다. 그러나 UTF-32에 비해 라틴 (영어) 알파벳 텍스트를 코딩하는 데 훨씬 적은 바이트가 필요합니다.

UTF-16도 가변 길이입니다. 문자는 2 바이트 또는 4 바이트로 코딩됩니다. 나는 정말로 요점을 보지 못한다. 가변 길이라는 단점이 있지만 UTF-8만큼 많은 공간을 절약 할 수는 없다는 이점이 있습니다.

이 세 가지 중에서 분명히 UTF-8이 가장 널리 퍼져 있습니다.


웹 사이트를 개발하는 동안 문자열 길이를 계산하고 싶은 이유는 무엇입니까? 웹 개발에서 UTF-8 / UTF-16을 선택하면 어떤 이점이 있습니까?
Morfidon

"문자열의 길이를 쉽게 계산할 수 있다는 장점이 있습니다."코드 포인트 수로 길이를 정의하면 바이트 길이를 4로 나누면 UTF-32를 사용할 수 있습니다. 그러나 이것은 매우 유용한 정의는 아닙니다. 문자 수와 관련이 없을 수도 있습니다. 또한 정규화는 문자열의 코드 포인트 수를 변경할 수 있습니다. 예를 들어, 프랑스어 단어 "été"는 3 개의 별개의 코드 포인트 길이를 사용하여 4 가지 이상의 다른 방식으로 인코딩 될 수 있습니다.

UTF-16은 UTF-8보다 빠르며 UTF-32와 같은 메모리 낭비도 없습니다.
Michal Štein

6

개발 환경에 따라 문자열 데이터 유형이 내부에서 어떤 인코딩을 사용할지 선택하지 못할 수도 있습니다.

그러나 데이터를 저장하고 교환하려면 항상 UTF-8을 사용하십시오. 대부분 ASCII 데이터가있는 경우 전송하는 데 가장 적은 양의 데이터를 제공하면서도 모든 것을 인코딩 할 수 있습니다. 최소한의 I / O를 최적화하는 것이 최신 기계를 사용하는 방법입니다.


공간 요구 사항보다 훨씬 더 중요한 것은 UTF-8이 엔디안에 영향을받지 않는다는 것입니다. UTF-16과 UTF-32는 필연적으로 엔디안 문제를 처리해야합니다. UTF-8은 단순히 8 진수 스트림입니다.
IInspectable

2

언급 한 바와 같이, 차이는 주로 기본 변수의 크기이며, 각 경우 더 많은 문자를 표현할 수 있도록 커집니다.

그러나 글꼴, 인코딩 및 사물은 사악하게 복잡하므로 (필요하지 않습니까?)보다 자세하게 채우려면 큰 링크가 필요합니다.

http://www.cs.tut.fi/~jkorpela/chars.html#ascii

모든 것을 이해하지는 않겠지 만 나중에 문제가 발생하지 않으려면 최대한 빨리 배우는 것이 좋습니다.


또는 사실상 표준이되었으므로 UTF-8을 기본값으로 사용하고 새 시스템이이를 지원하는지 여부를 찾으십시오. 그렇지 않은 경우이 게시물로 돌아올 수 있습니다.
robotik

-2

간단히 말해서 UTF-16 또는 UTF-32를 사용하는 유일한 이유는 영어가 아닌 스크립트와 고대 스크립트를 각각 지원하는 것입니다.

웹 / 프로그래밍 목적에 더 효율적일 때 누군가가 비 UTF-8 인코딩을 선택한 이유가 궁금합니다.

일반적인 오해-접미사 숫자는 해당 기능을 나타내는 것이 아닙니다. UTF-8이 ASCII를 단일 바이트로 처리 할 수 ​​있다는 점에서 모두 완전한 유니 코드를 지원하므로 CPU와 인터넷을 통해 더 효율적이고 덜 손상됩니다.

좋은 읽을 거리 : http://www.personal.psu.edu/ejp10/blogs/gotunicode/2007/10/which_utf_do_i_use.htmlhttp://utf8everywhere.org


UTF-16 또는 UTF-32를 사용하는 것이 영어 이외의 텍스트를 지원해야한다고 생각하는 이유는 확실하지 않습니다. UTF-8은 잘 처리 할 수 ​​있습니다. 영어 텍스트에는 ASCII가 아닌 문자도 있습니다. 너비가 0이 아닌 조이너와 같습니다. 또는 엠 대시. 이 답변은 많은 가치를 부여하지 않습니다.
IInspectable

UTF-8 여전히 일반적으로 HTML에서 사용되는 파일 때문에이 질문은 문자의 대부분이 UTF-8에서 3 바이트 문자 경우에도 downvoting 의무가
Ṃųỻịgǻňạcểơửṩ

@IInspectable 지원은 최고의 표현이 아니며, 홍보 또는 더 나은 지원이 더 정확할 것입니다
robotik

utf8everywhere.org 와 같은 페이지를 보내는 것은 SO 답변에서하는 것이 아닙니다.
Michal Štein
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.