首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

VC++ 實現 ISO8859-1 轉 Unicode 的方法

     編輯:程式設計綜合問答

問題描述

在 VC++ 開發中,如何將 ISO8859-1 編碼的字符串轉換為 Unicode(UTF-16)編碼?這是處理國際化文本時常見的需求。

解決方案

Windows API 提供了 MultiByteToWideChar 函數可完成此轉換。ISO8859-1 的代碼頁為 28591。

代碼示例

#include 
#include 

std::wstring ISO88591ToUnicode(const std::string& str) {
    if (str.empty()) return L"";
    int len = MultiByteToWideChar(28591, 0, str.c_str(), -1, NULL, 0);
    std::wstring wstr(len, 0);
    MultiByteToWideChar(28591, 0, str.c_str(), -1, &wstr[0], len);
    return wstr;
}

關鍵點

  • 代碼頁參數使用 28591(ISO-8859-1)。
  • 兩次調用:第一次獲取所需緩衝區大小,第二次實際轉換。
  • 返回 std::wstring 即 Unicode 字符串。

參考資源:CSDN 相關文章

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved