2009-12-03 57 views

Trả lời

8

Tôi nghĩ rằng nó lưu tệp trong trang mã hiện tại. Có một tùy chọn trong Tools-> Options-> Environment-> Documents sẽ làm cho nó lưu trong unicode khi nó không thể lưu trong codepage hiện tại. Nhưng tôi không biết nếu điều đó giúp ...

+1

Nó không làm việc, bạn phải tìm tất cả các file lưu trong gbk, sau đó cho tay VS2010 để cứu họ trong utf8.This thứ nhàm chán tôi rất nhiều .. –

21

Tôi không biết cách nào để buộc nó lưu mọi thứ bằng UTF-8, nhưng bạn có thể làm như vậy theo từng trường hợp cụ thể. Khi bạn lần đầu tiên lưu tài liệu và hộp thoại Lưu dưới dạng ... xuất hiện, nút Lưu thực sự sẽ là nút thả xuống có hai tùy chọn. Bạn muốn "Lưu với Mã hóa ...", sau đó sẽ hiển thị cho bạn toàn bộ danh sách các mã hóa Windows đã cài đặt.

Mã hóa bạn thực sự muốn là con đường xuống phía dưới:

Unicode (UTF-8 mà không cần chữ ký) - bảng mã 65001

mặc dù nếu bạn muốn tiết kiệm cho mình rất nhiều đau đớn, bạn sẽ có thể muốn chọn tùy chọn ở gần đầu:

Unicode (UTF-8 có chữ ký) - bảng mã 65001

sự khác biệt là lựa chọn thứ hai dính chữ ký UTF-8 (wh ich chỉ là dấu thứ tự byte UTF-16 được mã hóa bằng UTF-8). Đây là một trong những peeves thú cưng của tôi, như UTF-8 không đơn đặt hàng nhiều byte, vì vậy BOM là dư thừa tốt nhất, và phá vỡ tất cả các loại công cụ xử lý văn bản tồi tệ nhất. MS sử dụng nó để "phát hiện" UTF-8 tự động, vì đối với ký tự một byte, UTF-8, ISO-8859-1 và CP-1252 giống hệt nhau ngoại trừ chuỗi 32 ký tự (0x80 - 0x9f) mà về cơ bản tạo thành.

Nếu bạn chỉ chỉnh sửa hoặc xử lý tệp của mình bằng công cụ Visual Studio hoặc .NET, thì việc lưu bằng chữ ký có thể sẽ hoạt động tốt. Nếu bạn cần lưu tệp để sử dụng bởi các công cụ khác (các tệp lô, truy vấn SQL, tập lệnh PHP, v.v.), chữ ký sẽ gây ra sự cố và bạn nên lưu chúng mà không cần nó. Nếu bạn thực hiện điều này, bạn có thể muốn bật tùy chọn (Trong Công cụ -> Tùy chọn -> Trình chỉnh sửa văn bản) thành "Tự động phát hiện mã hóa UTF-8 mà không có chữ ký", hoặc người nào khác, nhấp chuột phải vào tệp và chọn "Mở bằng ... "và chọn tùy chọn trình chỉnh sửa có nội dung" editor with Encoding ".

+2

Tôi nghĩ rằng BOM được bao gồm để biên tập viên văn bản có thể dễ dàng xác định xem một tập tin nên được coi là UTF-8 khi chỉ có các ký tự ASCII có mặt. Vì vậy, nói đúng, tôi không nghĩ nó dư thừa. Nếu bạn muốn nói về dư thừa, tôi nghĩ UTF-32 là con đường để đi. –

+1

Nếu bạn cần xác định xem một tệp có thể được coi là UTF-8 hay không, có một cách rất đơn giản: * thử * để phân tích cú pháp tệp dưới dạng UTF-8. Các thuộc tính của UTF-8 là như vậy mà nó là vô cùng không chắc rằng một tập tin không phải UTF-8 cũng có thể là hợp lệ UTF-8 (và tất nhiên, ASCII là một tập con của UTF-8). –

5

Tôi nghĩ bạn muốn thử sức mạnh ForceUtf8 (với BOM)/ForceUtf8 (không có BOM).

Chỉ cần tìm kiếm UTF8 trên thư viện tiện ích VS (Tools -> Mở rộng và cập nhật)

+0

đó là một bình luận chứ không phải là câu trả lời. – qxg

+0

Khi sử dụng phương pháp này là chuyển đổi tự động? hoặc có một tùy chọn để chuyển đổi từng tệp theo cách thủ công? – xzegga

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