全角日本語文字列
String ^ stringText = 全角日本語;
を、char配列
char szText[128];
に変換したいのですが、
http://msdn2.microsoft.com/ja-jp/library/d1ae6tz5(VS.80).aspx
記載の方法でうまくいきません。
半角英数字ならうまくいきます。
全角文字列をどうやって変換するのでしょうか?
<開発環境>
Windows XP SP2, Visual C++2005,
構成プロパティ「文字セット」=設定なし
...
#include < vcclr.h >
#include < locale.h > // 追加
using namespace System;
int main() {
setlocale(LC_ALL,japanese); // 追加
String ^str = こんにちは; // 変更
...
επιστημηさん、Blueさん 素早い返答有難うございます。
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=818937&SiteID=7
の 訂正版 sample2()でうまくいきました。
(訂正版 sample4()では失敗)
他は、これから試します。
>(訂正版 sample4()では失敗)
いや、だからεπιστημηさんも、わたしのコードのコメントにもあるように
wcstombs_s関数を使うためにも
setlocale( LC_ALL, Japanese );
の記述は必須になります。
# 最初から、_wcstombs_s_l で書いておけばよかったかなぁ。
> いや、だからεπιστημηさんも、わたしのコードのコメントにもあるように
> wcstombs_s関数を使うためにも
> setlocale( LC_ALL, Japanese );
> の記述は必須になります。
επιστημηさん、Blueさんのコメントにある
#include < locale.h > // 追加
setlocale(LC_ALL,japanese); // 追加
2行を元コードに追加するだけで動きました。失礼しました。
setlocale(LC_ALL,japanese); についてよくわかっていないのですが、
訂正版 sample2()ではなくても動きました。
どういう時に使うのでしょうか。
> どういう時に使うのでしょうか。
設定されているlocaleを頼りに変換を行う関数(つまりwcstombsなど)を呼ぶとき。