Cách đặt mã hóa tiêu chuẩn trong Visual Studio


99

Tôi đang tìm cách thiết lập Visual Studio để nó luôn lưu các tệp của tôi trong UTF-8.

Tôi chỉ tìm thấy các tùy chọn để thiết lập dự án này rộng rãi. Có cách nào để thiết lập Visual Studio rộng không?


31
Bạn đã tìm thấy các tùy chọn để mở rộng dự án này ở đâu?
Marc

Câu trả lời:


64

Bạn có muốn lưu các tệp dưới dạng UTF-8 vì bạn đang sử dụng các ký tự đặc biệt sẽ bị mất trong mã hóa ASCII không? Nếu đúng như vậy, thì có một cài đặt chung VS2008 Tools > Options > Environment > Documents, được đặt tên Save documents as Unicode when data cannot be saved in codepage. Khi điều này được bật, VS2008 sẽ lưu dưới dạng Unicode nếu một số ký tự nhất định không thể được biểu diễn trong bộ mã mặc định khác.

Ngoài ra, những tệp nào không được lưu dưới dạng UTF-8? Tất cả .cs, .csproj, .sln, .config, .as * x, v.v. của tôi, đều được lưu dưới dạng UTF-8 (với chữ ký, dấu thứ tự byte), theo mặc định.


2
Cảm ơn vì mẹo thiết lập. Tôi đã gặp sự cố này với các tệp xaml, gây ra lỗi trong quá trình biên dịch
lướt

Xin chào, bạn có biết tại sao Report Designer Thay đổi thuộc tính mã hóa thành utf-8 không? stackoverflow.com/questions/30071846/…
Mohammadreza

2
Vẫn không có giải pháp tốt hơn? VS2015 của tôi liên tục đặt lại mã hóa sau mỗi lần bị lỗi và với điện của tôi, điều đó xảy ra khá thường xuyên, thật đáng buồn, làm thế nào Microsoft lại đạt được điều này, làm thế nào họ có thể tạo IDE tốt nhất và quên cài đặt mã hóa mặc định, thật đáng tiếc ((
Movsar Bekaev

2
Khi bạn đặt Unicode, nó có thực sự sử dụng UTF-8 hoặc UTF-16 không?
binki

9
Vấn đề là dữ liệu CÓ THỂ được lưu trong bộ mã hệ thống mặc định. Nhưng các phần mềm khác không phải lúc nào cũng có thể đọc các nguồn trong codepage hệ thống của tôi. Do đó, tôi tìm cách buộc VS lưu tất cả các tệp văn bản trong UTF-8 theo mặc định. Tôi không biết tại sao ai đó lại muốn lưu dữ liệu văn bản trong codepage khác rồi UTF-8.
BlackOverlord

19

Điều đó hoàn toàn có thể với EditorConfig .

EditorConfig giúp các nhà phát triển xác định và duy trì các kiểu mã hóa nhất quán giữa các trình soạn thảo và IDE khác nhau.

Điều này cũng bao gồm mã hóa tệp.

EditorConfig được tích hợp sẵn trong Visual Studio 2017 theo mặc định và tôi đã có sẵn các plugin cho các phiên bản cũ như VS2012. Đọc thêm từ trang Plugin EditorConfig Visual Studio .

Làm sao

Bạn có thể thiết lập tệp cấu hình EditorConfig đủ cao trong cấu trúc thư mục của mình để mở rộng tất cả các kho lưu trữ dự định của bạn (lên đến gốc ổ đĩa của bạn nếu tệp của bạn thực sự nằm rải rác ở khắp mọi nơi) và định cấu hình cài đặtcharset :

ký tự : đặt thành latin1, utf-8, utf-8-bom, utf-16be hoặc utf-16le để điều khiển bộ ký tự.

Bạn có thể thêm bộ lọc và ngoại lệ, v.v. ở mọi cấp độ thư mục hoặc theo tên / loại tệp nếu bạn muốn kiểm soát tốt hơn.

Sau khi được cấu hình, các IDE tương thích sẽ tự động làm việc đó là làm cho các tệp phù hợp hoạt động để thiết lập các quy tắc. Lưu ý rằng Visual Studio không tự động chuyển đổi tất cả các tệp của bạn nhưng thực hiện một chút khi bạn làm việc với tệp trong IDE (mở và lưu).

Tiếp theo là gì

Mặc dù bạn có thể có thiết lập Visual-studio toàn diện, nhưng tôi thực sự khuyên bạn nên bao gồm gốc EditorConfig vào kiểm soát phiên bản giải pháp của bạn, để các cài đặt rõ ràng cũng được tự động đồng bộ hóa với tất cả các thành viên trong nhóm. Tệp editorconfig gốc ổ đĩa của bạn có thể là dự phòng nếu một số dự án chưa thiết lập tệp editorconfig của riêng họ.


4

Tôi làm việc với Windows7.

Bảng điều khiển - Khu vực và Ngôn ngữ - Quản trị - Ngôn ngữ cho các chương trình không phải Unicode.

Sau khi tôi đặt "Thay đổi ngôn ngữ hệ thống" thành tiếng Anh (Hoa Kỳ). Mã hóa mặc định của tôi vs2010 thay đổi thành Windows-1252. Đó là gb2312trước đây.

Tôi đã tạo một .cpptệp mới cho một dự án C ++, sau khi kiểm tra tệp mới cho TFS, bảng mã hiển thị Windows-1252 từ trang thuộc tính của tệp.


Trong Windows 10 có một hộp kiểm với nhãn "Beta: Sử dụng Unicode UTF-8 để hỗ trợ các ngôn ngữ trên thế giới". Khi tôi kiểm tra nó, tôi có thể mở tệp mã hóa bằng Windows-1252 trên visual studio 2019. Nhưng tôi chỉ tìm thấy cấu hình này vì câu trả lời này. Cảm ơn!
Gean Ribeiro

1

Tôi không biết về nither thiết lập toàn cầu nhưng bạn có thể thử điều này:

  1. Lưu tất cả các mẫu Visual Studio trong UTF-8
  2. Viết Macro / Addin Visual Studio sẽ lắng nghe sự kiện DocumentSaved và sẽ lưu tệp ở định dạng UTF-8 (nếu chưa có).
  3. Đặt một proxy vào kiểm soát nguồn của bạn để đảm bảo rằng các tệp mới luôn là UTF-8.

2
3. có thể là một ý tưởng tồi, vì ngay khi bạn kiểm tra một tệp, nó sẽ xác định rằng tệp của bạn không khớp với tệp đã đăng ký. Chà, với sự lật đổ, ít nhất. Nếu có thể mã hóa cả séc và đăng ký, thì đây không phải là vấn đề.
TamusJRoyce

Xin chào, bạn có biết tại sao Report Designer Thay đổi thuộc tính mã hóa thành utf-8 không? stackoverflow.com/questions/30071846/…
Mohammadreza
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.