Đặt mã ký tự sử dụng trong file python | Laptrinhcanban.com

Đặt mã ký tự sử dụng trong file python

Ở phiên bản python hiện tại, python xử lý file lưu giữ chương trình python với mặc định file đó đã được viết bằng mã ký tự UTF-8, vì vậy nếu file python được viết bằng mã ký tự khác UTF-8, chúng ta cần chỉ định mã ký tự nào đã được sử dụng để tránh xảy ra lỗi giải mã khi chạy chương trình. Bài viết này đặc biệt hữu ích cho các bạn sử dụng máy tính có cài hệ điều hành sử dụng các ngôn ngữ non-English như tiếng Nhật, tiếng Do Thái, tiếng Hàn, tiếng Trung…

Đặt mã ký tự sử dụng trong file lưu giữ chương trình python

Đặt mã ký tự trong trường hợp file python được viết bằng mã ký tự UTF-8

Python xử lý file lưu giữ chương trình python với mặc định file đó đã được viết bằng mã ký tự UTF-8, do đó với các file python được viết và lưu lại bằng mã ký tự UTF-8 thì chúng ta không cần thiết phải đặt mã ký tự trong file python.
Ví dụ chúng ta viết và lưu giữ chương trình python dưới đây bằng mã ký tự UTF-8.

print("Xin chào")

Khi chúng ta thử chạy chương trình ghi trong file python này, kết quả sau đây hiện ra chứng tỏ là python đã xử lý chương trình thành công:

Chạy chương trình ghi trong file python

Bạn có thể thấy, do chúng ta đã viết chương trình trong file bằng mã ký tự UTF-8, nên python với mặc định file cần xử lý đã được viết bằng mã ký tự UTF-8 đã không gặp vấn đề gì khi giải mã ký tự. Và chương trình đã được xử lý thành công.

Đặt mã ký tự trong trường hợp file python được viết bằng mã ký tự khác UTF-8

Nếu các ký tự trong file lưu giữ chương trình python được viết dưới dạng một mã ký tự khác UTF-8, điều hay xảy ra với các máy tình cài hệ điều hành sử dụng các ngôn ngữ non-English như tiếng Nhật, tiếng Do Thái, tiếng Hàn, tiếng Trung, thì để python có thể giải mã được các mã ký tự này khi chạy chương trình, chúng ta cần thiết phải đặt mã ký tự trong file python.

Cú pháp đặt mã ký tự sử dụng trong file lưu giữ chương trình python như sau:

# coding : tên mã ký tự
Hoặc là
# coding = tên mã ký tự

Ví dụ:

# coding: shift_jis

Lại nữa, trong môi trường Linux, nếu tại dòng đầu tiên của các file lưu giữ chương trình python có ghi #!/usr/bin/env python3 thì bạn hãy dùng cách đặt mã ký tự thứ hai ở trên.

Hãy cùng xem một ví dụ mà file python sử dụng tiếng Nhật được viết bằng mã ký tự Shift_JIS sau đây:

print ("こんにちは")

file python chứa tiếng Nhật được viết bằng mã ký tự Shift_JIS
※ こんにちは có nghĩa là xin chào trong tiếng Nhật.

Khi thử chạy file python này, do chúng ta không đặt mã ký tự Shift_JIS đã sử dụng trong để viết file nên python không giải mã được, và lỗi xảy ra:

SyntaxError: Non-UTF-8 code starting with '\x82' in file sample5-2.py on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

Lỗi giải mã ký tự

Để giải quyết lỗi này, chúng ta tiến hành đặt mã ký tự sử dụng trong file lưu giữ chương trình python này là Shift_JIS bằng cách thêm vào dòng đầu tiên trong file python này dòng code dưới đây:

# coding: shift_jis

File python ở trên sẽ có nội dung như dưới đây.

# coding: shift_jis
print ("こんにちは")

file python chứa tiếng Nhật được viết bằng mã ký tự Shift_JIS đã được đặt mã

Sau khi lưu lại file ở trên, chúng ta thử chạy chương trình. Kết quả, chương trình chạy mượt mà như sau:

Kết quả sau khi đặt mã ký tự sử dụng trong file lưu giữ chương trình python
Giống như ở trên, khi viết và lưu một chương trình python vào trong một file, nếu như không có lý do đặc biệt thì chúng ta sẽ sử dụng mã ký tự UTF-8.
Còn nếu như vì lý do đặc biệt bạn muốn dùng mã ký tự khác UTF-8 để viết và lưu file python thì bạn cần thiết phải đặt mã ký tự sử dụng trong file đó.

Các loại mã ký tự phổ biến sử dụng khi đặt mã ký tự sử dụng trong file python

Các loại mã ký tự phổ biến sử dụng khi đặt mã ký tự sử dụng trong file python như sau:

Codec(Tên mã ký tự)Cách gọi khác
ascii646, us-ascii
cp932932, ms932, mskanji, ms-kanji
euc_jpeucjp, ujis, u-jis
iso2022_jpcsiso2022jp, iso2022jp, iso-2022-jp
shift_jiscsshiftjis, shiftjis, sjis, s_jis
utf_8U8, UTF, utf8

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn cách đặt mã ký tự sử dụng trong file lưu giữ chương trình python rồi. Kiyoshi nghĩ là bạn cũng đã nắm được kiến thức căn bản rồi đó.

Hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo nhé.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.