2009-05-08 29 views
41

Có cách nào để buộc VS sử dụng Unicode luôn luôn, thay vì ISO-cái gì đó lạ?cách thay đổi mã hóa tệp nguồn trong dự án csharp (studio trực quan/máy msbuild)?

Tôi đang làm việc trên một dự án winapp csproject bằng Visual Studio 2008 trên Vista (ngôn ngữ Ba Lan). Vấn đề xuất hiện khi tôi xây dựng dự án trên Win Server 2003 (ngôn ngữ tiếng Anh) - sau đó dấu phụ Ba Lan đã biến mất.

Tôi đã điều tra rằng sự cố là do mã hóa tệp nguồn không đúng. Có vẻ như các tệp nguồn không sử dụng mã hóa UTF-8.

Trả lời

91

Vấn đề: Trình biên dịch được khởi chạy từ dòng lệnh không thể xử lý tệp nguồn vì các ký tự quốc tế mà tôi vừa thêm vào.

Giải pháp: Lưu tệp nguồn một cách rõ ràng bằng mã hóa UTF-8 để bảo toàn các ký tự quốc tế.

Làm thế nào để:

* open the problematic file in Visual Studio. 
* on the File menu click “Advanced Save Options“ 
* from “Encoding” combo select “Unicode (UTF-8 …“ 
* click OK. 

Bạn đang thiết lập. Cam kết làm hài lòng máy chủ xây dựng và phần còn lại của nhóm đang đợi màu xanh lá cây.

+3

Tôi đã tìm ra nó một vài phút trước. Tôi đã lưu một tệp cho thử nghiệm bằng cách sử dụng 'UTF-with-BOM' và nó đã sửa một vài chuỗi không hợp lệ. Có bất kỳ thiết lập cho Visual Studio để sử dụng UTF cho tất cả các nguồn? Nó thực sự ngu ngốc để thay đổi nó bằng tay cho một vài trăm tập tin. – tomo

+0

Tuy nhiên, có một công việc xung quanh - bạn có thể yêu cầu studio trực quan sử dụng mã hóa khác bằng cách đặt cài đặt khu vực máy tính thành tiếng Anh chẳng hạn. Điều này sẽ buộc VS phải sử dụng 'Tây Âu - Codepade 1252' thay vì 'Unicode UTF-8 - Codepage 65001'. Một lần nữa, điều này làm việc trong các ấn bản Express và tôi khá chắc chắn nó sẽ trong ứng dụng đầy đủ. – ruslander

+4

Cách giải quyết này không thỏa mãn tôi. Tôi thiết lập thiết lập khu vực máy tính để đánh bóng trên mục đích để chuyển đổi nó không phải là một lựa chọn. Và chuyển sang CP 1252 cũng không phải là một lựa chọn. Tôi muốn đặt CP65001 rõ ràng. Tôi đã dành một chút thời gian cho nghiên cứu và những gì tôi thấy nó mà VS 2008 mẫu là tốt - họ là tất cả UTF-8 với BOM. Nguồn gốc của tất cả các điều ác là các mẫu từ các trình lập trình cẩu thả từ các nhà sản xuất linh kiện bên ngoài. Cũng gần đây phát hành của ASP.NET MVC có vấn đề này. – tomo

1

Tôi đã gặp sự cố tương tự với dự án VS2015 vb.net và đã giải quyết vấn đề bằng cách thêm <CodePage>1250</CodePage> vào tệp vbproj/csproj của bạn. Tôi đã làm nó sau khi <SchemaVersion> đánh dấu, xây dựng lại dự án và nó đã làm việc cho tôi. Tôi đã gặp rắc rối với các chữ cái đánh bóng như ż, ą… Bạn cũng có thể thử UTF-8 - 65001 nhưng tôi không kiểm tra xem nó có hoạt động hay không.

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