Mã hóa ký tự mặc định là gì?


8

Bản thân tôi không biết câu hỏi này thực sự đi sâu đến mức nào (ví dụ, với tất cả những gì tôi biết có thể có một số, tùy thuộc vào nhiệm vụ của tôi).

Đặc biệt, tôi quan tâm đến loại chuỗi nào được sử dụng để đặt tên cho các tệp và thư mục trên hệ thống.

Tôi cũng quan tâm đến cách các chuỗi được biểu diễn theo mặc định cho tập lệnh bash hoặc python.


Đó là một câu hỏi hay đặc biệt là nếu bạn chuyển đổi từ Windows và đóng góp mã nguồn cho một số hệ thống kiểm soát phiên bản. Sau khi chuyển sang Ubuntu, bạn có thể đột nhiên gặp các ký tự đặc biệt không thể đọc được, vì Windows thường không sử dụng UTF-8.
Tuneweizen

Câu trả lời:


3
  • Mã hóa tên tệp trên hệ thống tập tin là utf-8.
  • Bash nghĩ theo byte, không phải với chuỗi kiến ​​thức mã hóa. Vì vậy, không có mã hóa mặc định. Mã hóa mặc định của gnome-terminal là utf-8
  • Mã hóa mặc định của Python là ascii

Python 3 (tôi nghĩ?) Đang thay đổi thành chuỗi unicode theo mặc định.
Broam

Kiểu str () của Python 3 là một đối tượng unicode trong mã hóa UCS-2 hoặc UCS-4 bên trong. Làm thế nào dữ liệu được đọc hoặc ghi từ các tập tin và stdin được xác định bởi nhà phát triển ứng dụng / thư viện, với utf-8 là tiêu chuẩn (ví dụ như in (some_str) sẽ in đại diện utf-8).
Dennis Kaarsemaker

Python 3 sẽ chuyển sang unicode như Ruby 1.9 Python 2 trở xuống, như Ruby 1.8 và ít hơn là dựa trên ascii và hoạt động với tất cả các bộ ký tự, nhưng ý tưởng của họ về số ký tự cho chuỗi unicode là sai. (thường không phải là vấn đề)
Ralf

3
gnome-terminal không mặc định là utf-8; nó chỉ sử dụng bất cứ thứ gì địa phương của bạn được đặt thành. (Như tôi đã phát hiện ra một cách khó khăn gần đây.)
frabjous

1
@DennisKaarsemaker Không, Python3 không chỉ mã hóa cho nhà phát triển và sử dụng mặc định UTF-8. Ví dụ, Stdin và -out sử dụng mã hóa môi trường!
Robert Siemer

7

Mã hóa ký tự mặc định là UTF-8 (Unicode), mặc dù hầu hết tất cả (rất có thể tất cả các tên tệp cài đặt mặc định) là các ký tự ASCII thông thường, phổ biến cho hầu hết các mã hóa.

Tôi không biết ý của bạn là gì bởi "có bao nhiêu chuỗi được biểu thị bằng một tập lệnh bash hoặc python". Bạn có thể sử dụng các ký tự Unicode trong các tập lệnh bash trên Ubuntu, nhưng thông thường với tập lệnh bash, bạn gọi các chương trình khác và liệu các chương trình khác đó có xử lý chúng hay không là một vấn đề khác. Chắc chắn bạn cũng có thể làm như vậy với Python, mặc dù bạn sẽ muốn làm quen với các gói và cài đặt liên quan.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.