이 같은 여러 개의 16 진수 값을 요구하는 문자로 문자열을 변환하려고에 \ xHH 16 진수 값을 가진 문자열 :파이썬 3 - 유니 코드
'Mahou Shoujo Madoka\xe2\x98\x85Magica'
의 유니 코드 표현으로 :
'Mahou Shoujo Madoka★Magica'
내가
x = 'Mahou Shoujo Madoka\xe2\x98\x85Magica'
print(x)
Mahou Shoujo MadokaâMagica
그래서 : 나는 문자열을 인쇄 할 때, 그것은 기본적으로 나는이를 얻을 수 있도록, 개별적으로 각 16 진수 값을 평가하려고
x = 'Mahou Shoujo Madoka\xe2\x98\x85Magica'
z = x.encode('utf-8')
print('z:', z)
y = z.decode('utf-8')
print('y:', y)
z: b'Mahou Shoujo Madoka\xc3\xa2\xc2\x98\xc2\x85Magica'
y: Mahou Shoujo MadokaâMagica
Python: Convert Unicode-Hex-String to Unicode : 같은 Best way to convert string to bytes in Python 3? 같은 다른 StackOverflow의 답변, 시도
z = 'Mahou Shoujo Madoka\xe2\x98\x85Magica'
x = binascii.unhexlify(binascii.hexlify(z.encode('utf-8'))).decode('utf-8')
print('x:', x)
x: Mahou Shoujo MadokaâMagica
그리고 일부 다른,하지만 그들 중 누구도 일했다. 내가 찾은 대부분의 결과는 double backslash problem 사람 이었지만 그 중 누구도 정확한 문제가 없었습니다.
str.encode를 할 때 첫 번째 시도에서 z와 x의 차이와 같은 바이너리에 추가 값을 추가하는 것처럼 보입니다. 이유는 확실하지 않습니다.
그래서 수동으로 바이너리로 문자열의 문자를 입력하려고 :
x = b'Mahou Shoujo Madoka\xe2\x98\x85Magica'
x.decode('utf-8')
'Mahou Shoujo Madoka★Magica'
그것은했다. 그러나 문자열을 이진 문자로 변환하는 방법을 찾지 못했습니다. 내가 어디로 잘못 가고 있니?
문자열을 변수에 할당하려면 위의 내용을's = b "\ xe2 \ x98 \ x85".decode ("utf8")'로 줄이십시오. – Jens
@Jens 당신은's = '★''로 단축 할 수 있습니다. 그러나 그것은 질문의 요점이 아니 었습니다. –