2010-04-29 8 views
0

X # 문자 = Y # 바이트를 알아내는 좋은 추정치/전환/공식은 무엇입니까?바이트 문자들

+3

전적으로 사용하는 문자 인코딩 체계에 따라 다릅니다. 어느 쪽을 사용하고 있습니까? –

+0

MySQL ...? > _o –

+1

MySQL의 기본 인코딩은 Latin-1이므로 변경하지 않으면 문자 당 1 바이트이지만 매우 제한된 문자 집합 만 저장할 수 있습니다. UTF-8 사용을 고려하십시오. – bobince

답변

5

전적으로 인코딩 및 잠재적으로 데이터에 따라 다릅니다.

UTF-16의 경우 모든 문자가 Basic Multilingual Plane에 있음을 알고 있으면 대답은 바이트 = 2 * 문자가됩니다.

UTF-8의 경우 모든 것이 ASCII 범위에 있으면 바이트 = 문자입니다. 그러나 극동 문자가 많으면 바이트 = 3 * 문자만큼 많을 수 있습니다. 다국어 화면).

다른 인코딩에는 분명히 다른 시나리오가 있습니다. 자신의 상황 (및 플랫폼)에 대해 더 자세히 설명해 주시겠습니까? 실제 문자를 기반으로 정확한 계산 값을 원하십니까? 인코딩 할 텍스트에 대해 아십니까?

+0

UTF-8은 단일 문자에 대해 최대 4 바이트를 사용할 수 있습니다. –

+0

@Christoffer : BMP 내조차도? http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8에 따르지 않음 –

0

ANSI의 경우 1 바이트는 char이지만 유니 코드의 경우 char 당 2 바이트라고 생각합니다. 아마도 다중 바이트 패턴이있을지라도.

관련 문제