Microsoft Visual Studio 2008 phiên bản của bài viết này, xem 980263.
Triệu chứng
Hãy xem xét tình huống sau:
-
Bạn tạo một dự án Visual C++ trong Microsoft Visual Studio 2010.
-
Tệp dự án khởi literals chuỗi hẹp. Các literals chuỗi chứa các ký tự Châu á và không mục có tên "Lê"
-
Tệp được lưu bằng cách sử dụng mã hoá UTF-8.
Trong trường hợp này, khi bạn biên dịch dự án literals chuỗi được misinterpreted bởi trình biên soạn. Ngoài ra, bạn gặp một trong các vấn đề sau:
-
Khi tệp chứa dấu thứ tự byte (BOM), tập hợp tác thành công. Tuy nhiên, literals chuỗi được vẫn hiển thị không chính xác trong ứng dụng được tạo ra. Ngoài ra, bạn có thể nhận được thông báo cảnh báo sau khi bạn biên dịch dự án:
Cảnh báo C4566: Ký tự đại diện tế tự-tên 'xx' không xuất hiện trong trang mã hiện thời.
-
Tập hợp các hoạt động không thành công. Ngoài ra, bạn có thể nhận được thông báo lỗi khi bạn biên dịch dự án:
Lỗi C2078: Quá nhiều initializers
-
Tập hợp các hoạt động không thành công. Ngoài ra, bạn có thể nhận được thông báo cảnh báo sau khi bạn biên dịch dự án:
Cảnh báo C4129: 'tự': không được nhận dạng ký tự thoát trình tự.
Nguyên nhân
Sự cố này xảy ra bởi vì trình biên soạn giả định rằng literals trong tệp có thể được hiểu là byte dẫn MBCS mã hóa thay vì là một byte Unicode. Vì sự cố này, trình biên dịch không chính xác chuyển tệp.
Giải pháp
Để giải quyết vấn đề này, áp dụng hotfix này vào máy tính mà bạn biên dịch dự án. Sau đó lưu tệp cùng với dấu thứ tự byte và sau đó thêm "pragma" chỉ sau trước khi literals chuỗi trong tệp nguồn:
#pragma execution_character_set("utf-8")
Chú ý Chỉ thị "pragma" này đặt đơn vị dịch tệp nguồn cho đến khi chỉ thị "pragma" này được thay thế bằng một "pragma" chỉ.
Thông tin về hotfix này
Thông tin về cập nhật nóng
Microsoft hiện đã cung cấp bản cập nhật nóng được hỗ trợ. Tuy nhiên, nó là nhằm khắc phục chỉ sự cố được mô tả trong bài viết này. Áp dụng cho các hệ thống đang gặp sự cố cụ thể này. Hotfix này có thể được kiểm tra thêm. Do đó, nếu bạn không bị ảnh hưởng bởi sự cố này, chúng tôi khuyến nghị bạn đợi tiếp theo có chứa hotfix này. Để giải quyết vấn đề này ngay lập tức, hãy liên hệ với dịch vụ hỗ trợ khách hàng Microsoft để lấy hotfix. Để biết danh sách đầy đủ số điện thoại Dịch vụ hỗ trợ khách hàng của Microsoft và thông tin về chi phí hỗ trợ, ghé thăm website sau của Microsoft:
http://support.microsoft.com/contactus/?ws=supportChú ý Trong một số trường hợp đặc biệt, chi phí thường phát sinh cho cuộc gọi hỗ trợ có thể được hủy nếu Chuyên gia hỗ trợ của Microsoft xác định rằng một bản cập nhật cụ thể sẽ giải quyết sự cố của bạn. Chi phí hỗ trợ thông thường sẽ áp dụng đối với các vấn đề và câu hỏi hỗ trợ bổ sung không phù hợp với bản cập nhật cụ thể đang được bàn tới.
Điều kiện tiên quyết
Bạn phải có Microsoft Visual Studio 2010 được cài đặt để áp dụng hotfix này.
Thông tin về khởi động lại
Bạn không phải khởi động lại máy tính sau khi bạn áp dụng hotfix này.
Thông tin về tệp
Phiên bản tiếng Anh của cập nhật nóng này có các thuộc tính tệp (hoặc thuộc tính tệp mới hơn) được liệt kê trong bảng sau. Ngày và giờ của các tệp này được liệt kê theo Giờ chuẩn quốc tế (UTC). Khi bạn xem thông tin về tệp, tệp đó đã được chuyển đổi thành giờ địa phương. Để tìm sự khác nhau giữa UTC và giờ địa phương, sử dụng tab Múi Giờ trong mục Ngày và Giờ trong Pa-nen điều khiển.
Tên tệp |
Phiên bản tệp |
Kích thước tệp |
Ngày |
Giờ |
Nền |
---|---|---|---|---|---|
C1.dll |
16.0.30319.351 |
658,240 |
23-Aug-2010 |
06:45 |
x86 |
C1.dll |
16.0.30319.351 |
723,776 |
23-Aug-2010 |
06:45 |
x86 |
C1.dll |
16.0.30319.351 |
899,400 |
23-Aug-2010 |
06:45 |
x86 |
C1xx.dll |
16.0.30319.351 |
2,286,920 |
23-Aug-2010 |
06:45 |
x86 |
C1xx.dll |
16.0.30319.351 |
2,428,232 |
23-Aug-2010 |
06:45 |
x86 |
C1xx.dll |
16.0.30319.351 |
2,659,664 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
201,032 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
202,568 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
219,976 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
221,000 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
290,632 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
291,656 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
292,680 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
293,704 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
408,392 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
408,904 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
450,376 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
460,104 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
460,616 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
478,024 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
478,536 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
483,656 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
484,168 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
486,728 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
487,240 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
491,848 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
492,360 |
23-Aug-2010 |
06:45 |
x86 |
Trạng thái
Microsoft đã xác nhận đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".