01/10/2018, 16:02
Câu hỏi về hàm open() trong python
Đây là code của mình:
import sys
script, input_encoding, error = sys.argv
def main(language_file,encode,errors):
line = language_file.readline()
if line:
print_line(line,encode,errors)
return main(language_file,encode,errors)
def print_line(line,encode,errors):
next_lang = line.strip()
raw_bytes = next_lang.encode(encode, errors = errors)
cooked_string = raw_bytes.decode(encode , errors = errors)
print(raw_bytes, "<===>", cooked_string)
languages = open("languages.txt", encoding = "utf-8")
main(languages, input_encoding,error)
Mình đang học về cách encode string và decode byte,tuy nhiên mình không hiểu tại sao mình lại cần "encoding = utf-8 " trong hàm open() ???.Mong mọi người giúp đỡ ạ.
Bài liên quan
Đọc ở đây
https://docs.python.org/3/library/functions.html#open
Nếu bạn không thêm
encoding='utf8'
thì file sẽ được mở theo encoding của hệ điều hành, mà đối với 1 số hệ điều hành (vd: Windows) encoding của hệ điều hành đó không phải utf-8 => dễ dẫn tới không đọc được kí tự utf-8 trong file.