2016-02-26 18 views
10

Đối dưới mã trong C:Chuỗi mã utf-8 được in ra màn hình bằng C bằng printf như thế nào?

char s[] = "这个问题"; 
printf("%s", s); 

Biết rằng tập tin nguồn là "UTF-8 Unicode C chương trình văn bản" với file lệnh.

Cách chuỗi được mã hóa sau khi biên dịch? Ngoài ra utf-8 trong tập tin .out?

Khi tệp nhị phân được thực thi trong bash, cách chuỗi được mã hóa trong bộ nhớ? Nó cũng là utf-8?

Sau đó, bash biết sơ đồ mã hóa và hiển thị ký tự phù hợp như thế nào?

Cuối cùng, bây giờ bash biết nội dung cần hiển thị, nhưng cách byte được dịch sang pixel trên màn hình? Có một số ánh xạ từ byte đến pixel?

Trong tất cả các quy trình này, có bất kỳ mã hóa hoặc giải mã nào của utf-8 không?

+1

Đó là câu hỏi khá. Lưu ý rằng bash, trình thông dịch lệnh shell và trình mô phỏng đầu cuối (cửa sổ hiển thị văn bản) không giống nhau. Chương trình của bạn không nói chuyện với bash, nó chỉ chạy trong cùng một thiết bị đầu cuối như bash (giả sử rằng bash là shell bạn sử dụng). – unwind

Trả lời

4

Giả sử GCC, this manual page cho biết bộ tiền xử lý trước tiên sẽ dịch bộ ký tự của tệp đến thành bộ ký tự nguồn được gọi là , cho gcc là UTF-8. Vì vậy, đối với một tập tin UTF-8, không có gì xảy ra. Bộ ký tự thực hiện mặc định sau đó được sử dụng cho các hằng số chuỗi, và đó là (một lần nữa, cho GCC) UTF-8 theo mặc định.

Vì vậy, chuỗi UTF-8 của bạn "tồn tại" và tồn tại trong tệp thực thi dưới dạng một chuỗi byte trong mã hóa UTF-8.

Thiết bị đầu cuối cũng có bộ ký tự và phải khớp, chương trình C không làm gì để dịch chuỗi tiếp theo khi được in, chúng chỉ được in dưới dạng byte, byte. Nếu thiết bị đầu cuối không được thiết lập cho UTF-8, bạn sẽ chỉ nhận được rác.

Như tôi đã lưu ý trong nhận xét, bash không liên quan gì đến điều này.

+0

Vì vậy, thiết bị đầu cuối được ánh xạ tới một tệp và tệp thực thi ghi các byte vào tệp có gián đoạn io. Thiết bị đầu cuối có thể được coi là thiết bị, ánh xạ byte thành pixel. Là nó? – heLomaN

+0

Và ánh xạ byte thành pixel được thực hiện bởi trình điều khiển đồ họa. – heLomaN

Các vấn đề liên quan