본문 바로가기

프로그래밍/ETC

C#의 char의 크기는?

와.
깜짝놀랐네요.
char은 언제까지나 1 byte가 아닙니다.

C#에서 기본적으로 char(type)은 2 bytes입니다.
(그말인 즉슨 C++/CLI도 char(type)은 2 byte란 말이죠.)
프로젝트 세팅에서 char를 1 byte로 만들 수도 없습니다.

class String의 기본 문자(basic traits)는
2 bytes인 char입니다.
그래서 편의를 위해
byte[] System.IO.File.ReadAllBytes() 함수를 이용하여 문서를 읽었다면
byte 2개당 하나의 char로 변환시켜주는 작업을 해야 String에 입력이 가능합니다.

C#은 똑똑해서 String에 byte를 += 연산자로 넣어버리면
숫자를 문자열로 서식화해서 넣어버립니다.
그래서 명시적으로 저렇게 2 byte짜리를 만든 뒤에 char로 변환을 해줘야 하죠.
그렇다고 비서식화용 Textbox가 지원되는 것도 아니니..
비서식화용 Textbox를 쓰려는 제가 좀 변태인건가요.. 흠..

하지만 암호화를 넣다보니 비서식화로부터 서식화로 변환을 해야되고..
이게 좀 복잡네요.
C#에서 분명히 간단히 하라고 뭔가 알려줬을텐데..
삽질하기엔 시간이 너무 들 것 같네요.

어쨋거나,
한참 삽질하다가 char가 1바이트가 아니라는 충격적인 소식을 접하고
급히 메모겸 씁니다.

'프로그래밍 > ETC' 카테고리의 다른 글

게임제작에 최적화된 언어에 대한 공상  (6) 2010.01.13
Crazy Eddie's GUI System  (12) 2009.08.06
Open Subversion(SVN) Storage  (5) 2008.12.12
autoexp.dat For Gamebryo 2.3  (4) 2008.03.04
[PHP] PHP 5 + IIS 6.0 + Windows 2003  (8) 2006.04.06