Đặt UTF8 làm Mã hóa ký tự mặc định trong Windows 7


63

Có cách nào để thiết lập Windows 7 sử dụng UTF-8 trên toàn cầu làm tiêu chuẩn không?
thật khó chịu khi đặt mọi trình soạn thảo văn bản để sử dụng nó.


4
Vì vậy, bạn muốn nói với hệ điều hành một cái gì đó .. và sau đó kỳ diệu tất cả các biên tập viên chọn điều đó? :) Bạn sử dụng bao nhiêu trình soạn thảo? Cứ 3 phút nữa lại có một người? Dù sao: superuser.com/questions/221593/windows-7-utf-8-and-unicode Từ những gì tôi biết: Windows sử dụng UTF16 trong nội bộ ở mọi nơi và tôi nghi ngờ rằng bạn có thể thay đổi điều đó.
akira

1
các trình soạn thảo tôi sử dụng: notepad, notepad ++, qt, nhật thực, thunderbird, văn phòng mở và một số thứ khác ... tôi không chỉ nói về các trình soạn thảo văn bản đơn thuần mà là mọi thứ hoạt động với văn bản vào và ra. hầu hết các trình soạn thảo văn bản độc lập nền tảng đều sử dụng utf-8 làm tiêu chuẩn trong Linux nhưng sử dụng Latin-1 trong Windows.
Baarn

Không có trên Windows 7 nhưng có thể có trên Windows 10
phuclv

Câu trả lời:


45

Câu trả lời ngắn gọn là không, điều đó là không thể .

Để giải thích, tôi e rằng bạn sẽ không tìm thấy tùy chọn mã hóa toàn cầu trong Windows 7 cho phép cả hai 1) đặt mặc định toàn cầu trong đó 2) tất cả các ứng dụng bạn liệt kê sẽ tuân theo.

Ngoài ra, tôi muốn hỏi vấn đề ở đây mà bạn đang cố gắng giải quyết là gì?

Tùy thuộc vào ứng dụng để chọn xem họ có sử dụng unicode bên trong để thể hiện dữ liệu hay không. Mặc dù việc sử dụng unicode được khuyến khích , bạn có thể không bao giờ chắc chắn rằng tất cả các ứng dụng của bạn trên thực tế đều hỗ trợ nội bộ.

Tuy nhiên, những gì bạn có thể làm là thay đổi mã hóa ký tự mặc định cho từng ứng dụng được liệt kê:

  • Đối với Eclipse, mã hóa mặc định cho các tệp mới có thể được đặt từ Windows> Tùy chọn> Chung> Loại nội dung (xem bài đăng trên Biểu mẫu cộng đồng Eclipse )
  • Đối với Notepad ++, điều hướng đến Cài đặt> Tùy chọn> Tài liệu mới / Mặc định / Thư mục và đặt Mã hóa thành UTF-8
  • Đối với Thunderbird, tôi khá chắc chắn rằng nó đã sử dụng UTF-8 làm mã hóa mặc định? (xem những lưu ý về mã hóa ký tự )
  • Trong trường hợp của OpenOffice (và LibreOffice), bạn thực sự thậm chí không cần phải quan tâm đến mã hóa, vì tài liệu được lưu bởi OpenOffice đều dựa trên XML, trong đó mã hóa được quy định trong nội bộ trong XML-file (và UTF-8 là đã mặc định là có)
  • Từ quan điểm UTF-8, PowerShell rất khó. Nó có mã hóa mặc định của UTF-16LE.

4
không phải là câu trả lời tôi hy vọng nhận được nhưng tôi nghĩ rằng tôi phải sống với sự thật, cảm ơn bạn =)
Baarn

cho cửa sổ notepad?
Mimouni

23

Không thể chủ yếu vì Windows không cho phép UTF-8 làm hệ thống mã hóa ANSI mặc dù nó có mã hóa ANSI cho UTF-8, codepage 65001 . Dường như có một số lý do cho việc này:

  • Khi Unicode mới được Microsoft quyết định UCS-2 sẽ là cách tốt nhất để hỗ trợ Unicode. Lúc đó Unicode là 16 bit.
  • Windows có một bảng mã ANSI cho mỗi ngôn ngữ được hỗ trợ , không giống như Unix và Linux nơi ngôn ngữ và mã hóa có thể được đặt độc lập.
  • Mã trang 65001 không hoạt động ở mọi nơi. Cụ thể, nó bị hỏng với một số hỗ trợ MultiByte trong Windows, dự kiến ​​các ký tự đa nhân sẽ yêu cầu một hoặc hai byte trong khi UTF-8 yêu cầu từ một đến bốn byte. Các WriteFile()API ví dụ trả về một kết quả không chính xác dưới bảng mã 65001 mà bong bóng lên thông qua tất cả các mã thư viện dựa vào nó như write().

Michael Kaplan quá cố, người đã làm việc về quốc tế hóa tại Microsoft đã có một blog "Sắp xếp tất cả" , với một số bài viết về các chủ đề liên quan. Tôi đã gửi email trực tiếp cho anh ấy về một số trong những mối quan tâm này trở lại trong ngày.


Lưu ý rằng trở lại khi Windows (NT) được hình thành, không có UTF-8. Vì vậy, UCS-2 thực sự là một lựa chọn thực sự lành mạnh (và không thể thay đổi sau đó, ngoại trừ UTF-16).
Joey

2
Lý do là vì ngôn ngữ UTF-8 có thể phá vỡ một số chức năng (một ví dụ có thể là _mbsrev) vì chúng được viết để giả định mã hóa đa bào được sử dụng không quá 2 byte cho mỗi ký tự, do đó cho đến nay các trang mã có nhiều byte hơn như GB 18030 (cp54936 ) và UTF-8 không thể được đặt làm ngôn ngữ. . Nhưng ít nhất bây giờ có thể đặt ngôn ngữ UTF-8 trên Windows 10
phuclv
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.