문제

16진수 표기법으로 이스케이프 시퀀스 문자열을 작성하려면 어떻게 해야 합니까?

예:

string s = "\x1A"; // this will create the hex-value 1A or dec-value 26

이와 같이 00에서 FF 사이의 16진수 값으로 문자열을 작성할 수 있기를 원합니다(이 예에서는 1B).

string s = "\x" + "1B"; // Unrecognized escape sequence

어쩌면 16진수 문자열을 만드는 또 다른 방법이 있을 수도 있습니다...

도움이 되었습니까?

해결책

당신은 문자열에 16 진수 값을 저장하지 않습니다.

당신은 할 수 있지만, 그것은 단지 끈 일 것입니다. 실제로 그 값을 읽기 위해 정수 또는 바이트에 캐스트해야합니다.

int 또는 바이트에 문자 그럴로 16 진수 값을 할당 할 수 있습니다.

Byte value = 0x0FF;
int value = 0x1B;

따라서 16 진 문자를 문자열로 전달할 수 있습니다.

string foo = String.Format("{0} hex test", 0x0BB);

이 문자열이 "126 hex test"를 생성합니다.

그러나 나는 그것이 당신이 원하는 것이라고 생각하지 않습니까?

다른 팁

피해주세요. \x 탈출 시퀀스.멈추는 위치는 데이터에 따라 다르기 때문에 읽기가 어렵습니다.예를 들어, 이 두 문자열을 한눈에 보면 얼마나 많은 차이가 있습니까?

"\x9Good compiler"
"\x9Bad compiler"

전자에서 "\x9"는 탭입니다. 'G'는 유효한 16진수 문자가 아니기 때문에 이스케이프 시퀀스가 ​​여기서 중지됩니다.두 번째 문자열에서 "\x9Bad"는 모두 이스케이프 시퀀스이므로 임의의 유니코드 문자와 "컴파일러"가 남습니다.

대신 \u 이스케이프 시퀀스를 사용하는 것이 좋습니다.

"\u0009Good compiler"
"\u0009Bad compiler"

(물론 탭의 경우에는 \t 하지만 내 말이 무슨 뜻인지 이해하길 바랍니다...)

이것은 물론 원래 질문과는 다소 다르지만 이미 답변되었습니다. :)

16 진수에 대한 ' u'탈출 코드가 있습니다. 16 비트 유니 코드 문자 코드.

Console.WriteLine( "Look, I'm so happy : \u263A" );
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top