ReadConsoleInputA không trả về các kí tự đại diện byte kép đúng trong Windows 8 và Windows 10

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch thuật của Microsoft và có thể được Cộng đồng Microsoft chỉnh sửa lại thông qua công nghệ CTF thay vì một biên dịch viên chuyên nghiệp. Microsoft cung cấp các bài viết được cả biên dịch viên và phần mềm dịch thuật thực hiện và cộng đồng chỉnh sửa lại để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng nhiều ngôn ngữ Tuy nhiên, bài viết do máy dịch hoặc thậm chí cộng đồng chỉnh sửa sau không phải lúc nào cũng hoàn hảo. Các bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này: 3165318
Triệu chứng
Khi bạn chạyReadConsoleInputAchức năng trong Windows 8 hoặc Windows 10, các chức năng không thể trả lại các kí tự đại diện byte kép chính xác (DBCS). Ứng dụng sử dụng hàmReadConsoleInputAđọc bàn phím từ bàn điều khiển có thể gặp phải hiện tượng không mong muốn hoặc họ có thể sập. Ứng dụng gọi C thời gian chạy chức năng như_getch() cũng bị ảnh hưởng.
Nguyên nhân
Chức năng ReadConsoleInputA không tiến mã kí tự đại diện thứ hai của một nhân vật DBCS khi cấu trúc INPUT_RECORD duy nhất được đọc trong mỗi cuộc gọi.
Tình trạng
Microsoft đã xác nhận rằng đây là sự cố trong sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".
Cách giải quyết khác
Để khắc phục sự cố này, sử dụng một trong các phương pháp sau:
  • Sử dụng các ReadConsoleInputWchức năng hoặc phiên bản tương ứng của Unicode C thời gian chạy chức năng, chẳng hạn như _getwch().
  • Đọc hai INPUT_RECORD cấu trúc khi bạn gọiReadConsoleInputA.

Cảnh báo: Bài viết này được dịch tự động

Thuộc tính

ID Bài viết: 3165318 - Xem lại Lần cuối: 05/19/2016 19:57:00 - Bản sửa đổi: 1.0

Windows 8, Windows 8.1, Windows 10

  • kbmt KB3165318 KbMtvi
Phản hồi