修訂了一個字元集相關的bug

來源:互聯網
上載者:User

在發送給mysql伺服器的SQL編碼時,CLR的System::String類型需要轉成MultiByte類型的String。

使用了wcstombs_s進行轉換,之前需要setlocale設定轉換字元集。

setlocale(LC_ALL,"chs_chn.936");

意味著中國語_中國地區_GBKcodepage。

int tsql::f_StringToChar(System::String ^pStr,// 被轉換的System::String char **pOut,// 轉換出的char 數組 int * piSize)// 轉換出的大小.{pin_ptr<const wchar_t> wch = PtrToStringChars(pStr);// Convert to a char*size_t origsize = wcslen(wch) + 1;const size_t newsize = origsize * sizeof(wchar_t);size_t convertedChars = 0;if (*pOut == NULL){*pOut = new char [newsize];if (piSize)*piSize = (int)newsize;}else{if (piSize){if (*piSize < (int)newsize){delete [] *pOut;*pOut = new char [newsize];if (piSize)*piSize =(int) newsize;}}}setlocale(LC_ALL,"chs_chn.936");// 等於LC_ALL,""wcstombs_s(&convertedChars, *pOut, newsize, wch, newsize);return newsize;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.