Tôi có một biến thể bstr được lấy từ MSXML DOM, vì vậy nó nằm trong UTF-16. Tôi đang cố gắng tìm hiểu xem mã hóa mặc định nào xảy ra với chuyển đổi này:Mã hóa mặc định cho biến thể bstr thành std :: string conversion
VARIANT vtNodeValue;
pNode->get_nodeValue(&vtNodeValue);
string strValue = (char*)_bstr_t(vtNodeValue);
Từ thử nghiệm, tôi tin rằng mã hóa mặc định là Windows-1252 hoặc Ascii nhưng không chắc chắn.
Btw, đây là đoạn mã mà tôi đang sửa và chuyển đổi biến thể thành chuỗi và chuyển sang mã hóa nhiều byte với lệnh gọi tới WideCharToMultiByte.
Cảm ơn!
Cảm ơn !!! Trang mã mặc định trên US Windows là 1252, phù hợp với những gì tôi đã quan sát. Điều này có thể được xác định trên bất kỳ máy nào có cuộc gọi này: \t int nCodePage = GetACP(); –