2009-12-27 8 views
2

MySQL VARCHAR의 모든 char을 nulls와 newlines처럼 저장할 수 있습니까?MySQL VARCHAR의 문자를 저장할 수 있습니까?

+1

NULL은 문자가 아니므로 아니요. 뉴 라인은 그렇습니다. 질문의 배경은 무엇입니까? –

+0

아, 항상 null이 0x00으로 표시 될 수 있다고 생각했습니다. –

+3

NULL은 MySQL의에서 특별한 의미가 있습니다 http://dev.mysql.com/doc/refman/5.0/en/working-with-null.html 널 (null) 바이트에 대해 확실히 모르겠어요,하지만 난 varchar가 가게를 생각할 겁니다 아무것도. –

답변

3

인쇄 할 수없는 문자의 문자열을 저장하는 데 특히 BINARY and VARBINARY data types을 사용해야합니다. 특히 실제 텍스트 문자 (멀티 바이트 일 수 있음) 대신 단일 바이트 문자열을 원할 경우 특히 그렇습니다.

5

MySQL은 어떤 문자를 저장할 수 있지만, 지정된 인코딩에 따라, 일부 문자가 디스플레이 인코딩과 다른 경우 잘못 될 수 있습니다.

Varchars는 null 종료 문자열이 아니고 길이가 지정된 문자열이므로 길이가 2 또는 4 바이트 값으로 지정된 문자열의 시작 부분에 지정되므로 0x00조차도 모든 문자를 포함 할 수 있습니다.

나는 CHAR 컬럼에 대해 잘 모르겠지만, 나는 그들이 널 (저장 여전히 전체 길이를 차지하지만) 첫 × 00 문자열의 끝을 나타내는 것을 의미에서 종료됩니다 같은데요. 당신이 비록 사실 바이트 데이터를 저장하려면

, 당신은 BLOB 유형을 사용해야합니다. 또한 길이가 지정된 유형으로, 사용자가 입력 한 데이터를 포함하며 인코딩에 전혀 영향을받지 않습니다.

관련 문제