본문 바로가기

언어/Python

[ 파이썬 / Python ] 아스키 유니코드 다루기

반응형

파이썬에서 문자열을 아스키 문자와 유니코드 문자로 변환하는 방법은 ord()chr() 함수를 사용하여 쉽게 수행할 수 있습니다. 또한, 파이썬 3에서는 문자열이 기본적으로 유니코드를 사용하므로, 문자열을 다루는 것이 더 편리합니다. 아래에 각각의 방법을 설명하겠습니다.

1. 아스키 문자와 유니코드 값 변환

ord() 함수

ord() 함수는 문자 하나를 아스키(또는 유니코드) 값으로 변환합니다.

char = 'A'
ascii_value = ord(char)
print(ascii_value)  # 출력: 65

unicode_char = '가'
unicode_value = ord(unicode_char)
print(unicode_value)  # 출력: 44032

chr() 함수

chr() 함수는 아스키(또는 유니코드) 값을 문자로 변환합니다.

ascii_value = 65
char = chr(ascii_value)
print(char)  # 출력: A

unicode_value = 44032
unicode_char = chr(unicode_value)
print(unicode_char)  # 출력: 가

2. 문자열을 아스키와 유니코드로 변환

문자열을 아스키 값의 리스트로 변환

string = "Hello"
ascii_values = [ord(char) for char in string]
print(ascii_values)  # 출력: [72, 101, 108, 108, 111]

아스키 값의 리스트를 문자열로 변환

ascii_values = [72, 101, 108, 108, 111]
string = ''.join(chr(value) for value in ascii_values)
print(string)  # 출력: Hello

문자열을 유니코드 값의 리스트로 변환

string = "안녕하세요"
unicode_values = [ord(char) for char in string]
print(unicode_values)  # 출력: [50504, 45397, 54616, 49464, 50836]

유니코드 값의 리스트를 문자열로 변환

unicode_values = [50504, 45397, 54616, 49464, 50836]
string = ''.join(chr(value) for value in unicode_values)
print(string)  # 출력: 안녕하세요

3. 인코딩과 디코딩

문자열을 바이트로 인코딩

문자열을 특정 인코딩 형식(예: UTF-8)으로 바이트 배열로 변환합니다.

string = "Hello, 세계"
encoded_string = string.encode('utf-8')
print(encoded_string)  # 출력: b'Hello, \xec\x84\xb8\xea\xb3\x84'

바이트를 문자열로 디코딩

바이트 배열을 특정 인코딩 형식으로 문자열로 변환합니다.

encoded_string = b'Hello, \xec\x84\xb8\xea\xb3\x84'
decoded_string = encoded_string.decode('utf-8')
print(decoded_string)  # 출력: Hello, 세계

요약

  • ord(char): 문자를 아스키(유니코드) 값으로 변환
  • chr(value): 아스키(유니코드) 값을 문자로 변환
  • 문자열을 아스키(유니코드) 값의 리스트로 변환: [ord(char) for char in string]
  • 아스키(유니코드) 값의 리스트를 문자열로 변환: ''.join(chr(value) for value in values)
  • 문자열을 바이트로 인코딩: string.encode(encoding)
  • 바이트를 문자열로 디코딩: byte_array.decode(encoding)

이와 같은 방법을 통해 파이썬에서 문자열을 아스키 및 유니코드 값으로 변환하고, 인코딩과 디코딩을 처리할 수 있습니다.

반응형