문제
ASCII 특수 문자(예:ASCII 값 0x01)을 문자열로 변환하시겠습니까?
다음을 사용하고 있기 때문에 묻습니다.
str.Replace( "<TAG1>", Convert.ToChar(0x01).ToString() );
그리고 나는 이것보다 더 좋은 방법이 있을 것이라고 생각합니다.어떤 아이디어가 있나요?
업데이트:
또한 이 방법을 사용하는 경우 유니코드와 ASCII 충돌에 대해 걱정해야 합니까?
해결책
나는 당신이 사용할 수 있다고 믿습니다 \uXXXX
문자열에 지정된 코드를 삽입합니다.
예상 시간:방금 테스트했는데 작동합니다.:-)
using System;
class Uxxxx {
public static void Main() {
Console.WriteLine("\u20AC");
}
}
다른 팁
또한 이 방법을 사용하는 경우 유니코드와 ASCII 충돌에 대해 걱정해야 합니까?
첫 번째 문제는 태그가 ASCII와 충돌하는 것입니다.TAG10에 도착하면 0x0A와 충돌하게 됩니다.줄 바꿈.9개 이상의 태그를 얻지 못한다면 안전할 것입니다.유니코드 인코딩(또는 오히려:UTF8)은 바이트 값이 0에서 127 사이인 경우 ASCII 인코딩과 동일합니다.최상위 비트가 설정된 경우에만 다릅니다.
그리고 나는 이것보다 더 나은 방법이 있어야한다고 생각합니다.어떤 아이디어가 있나요?
노력하고 있는 것 같네요 텍스트 도구를 사용하여 바이너리 청크 조작.바이트를 삽입하고 싶다면 0x01
, 예를 들어, 해당 바이트가 무엇인지 신경 쓰지 않기 때문에 더 이상 텍스트를 조작하지 않습니다. ~할 것 같다 표현하고 어떤 인코딩을 출력할지 신경 쓰지 않는 것처럼 보이기 때문입니다.
더 나은 방법은 조작하는 것을 데이터의 이진 덩어리로 처리하는 것입니다. 이렇게 하면 깨지기 쉬운 해결 방법을 사용하거나 부작용에 대한 걱정 없이 쉽게 비트와 바이트를 삽입할 수 있습니다.