問題タブ [wstring]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
8129 参照

gdb - gdbでwstringを印刷する方法

gdbでwstringを出力するにはどうすればよいですか?

0 投票する
12 に答える
366028 参照

c++ - std :: wstring VS std :: string

std::stringとの違いがわかりませんstd::wstringwstringUnicode文字などのワイド文字をサポートしていることは知っています。次の質問があります。

  1. いつ使い替えるべきですstd::wstringstd::string
  2. std::string特殊文字を含むASCII文字セット全体を保持できますか?
  3. std::wstringすべての一般的なC++コンパイラでサポートされていますか?
  4. 正確には「ワイド文字」とは何ですか?
0 投票する
4 に答える
4632 参照

c++ - C++ で移植可能な wchar_t

C++ に移植可能な wchar_t はありますか? Windows では、2 バイトです。それ以外はすべて 4 バイトです。アプリケーションで wstring を使用したいのですが、これを移植することに決めた場合、問題が発生します。

0 投票する
2 に答える
3207 参照

c++ - C++0x は、UTF-8 バイト シーケンスとの間の std::wstring 変換をサポートしていますか?

C++0x が UTF-8、UTF-16、および UTF-32 リテラルのサポートを追加することを確認しました。しかし、3 つの表現の間の変換はどうでしょうか。

コードのどこでも std::wstring を使用する予定です。しかし、ファイルやネットワークを扱うときは、UTF-8 でエンコードされたデータを操作する必要もあります。C++0x もこれらの操作をサポートしますか?

0 投票する
4 に答える
7710 参照

c++ - エラー C2593: 演算子 = があいまいです

エラー C2593: 演算子 = があいまいです

上記の割り当てでこのエラーが発生するのはなぜですか? VC6で動作します。VC9 ではコンパイルされません。

0 投票する
1 に答える
854 参照

c++ - vc6 dll から wstring を作成するときのポインタまたはリンクの問題

VC6 で生成された DLLwstringを使用して、VC9 プロジェクトで使用しようとしています。この DLL にはwstring、 と呼ばれるを操作する上位レベルのクラスがありUtfStringます。

プロジェクトにすべてが正しくインポートされましたが、呼び出すと:

関数プロトタイプがライブラリにある場合でも、リンクしません...

もう 1 つの発行者は、新しい UtfString を作成し、アプリをデバッグすると、新しいポインタが<Bad Ptr>.

wstringVC6と VC9の競合が疑われますが、よくわかりwstringません。元の Dll を変更することは避けたいです。

誰かが私のために物事をより明確にし、問題の本当の理由が何であるかを説明してくれれば素晴らしいと思います.

回答ありがとうございます、ボリス

0 投票する
2 に答える
2441 参照

c++ - UCS-2LE テキスト ファイルの解析

Microsoft レポート ツールを使用して作成されたテキスト ファイルがあります。テキスト ファイルにはBOM 0xFFFE、先頭に が含まれ、次にASCII文字間にヌルがある文字出力 (" F.i.e.l.d.1.") が含まれます。これを使用して、これを入力形式および出力形式として使用iconvするように変換できます...うまく機能します。UTF-8UCS-2LEUTF-8

私の問題は、UCS-2LEファイルから文字列に行単位で読み取り、フィールド値を解析してからASCIIテキスト ファイル (つまりField1 Field2) に書き出すことです。stringのおよびwstringベースのバージョンを試しましたgetline– ファイルから文字列を読み取る間、関数のような関数substr(start, length)は文字列を値として解釈する8-bitため、開始値と長さの値はオフです。

UCS-2LEデータをC++文字列に読み込み、データ値を抽出するにはどうすればよいですか? 私は数多くのグーグル検索と同様に見てきましたがboosticuうまくいくものは見つかりませんでした。ここで何が欠けていますか?助けてください!

私のコード例は次のようになります。

したがって、たとえば" "srcBufが含まれている場合、上記は " " の代わりに " " を返します。 W.e. t.h.i.n.k. i.n. g.e.n.e.r.a.l.i.t.i.e.s.substr().k. i.n. g.eg.e.n.e.r.a.l.i.t.i.e.s.

私が望むのは、マルチバイト表現を気にせずに文字列を読み込んで処理することです。boostこれらの文字列をファイルから読み取り、内部使用のために固定幅表現に変換するために (または他の何かを) 使用する例はありますか?

ところで、私は Eclipse と gcc を使用して Mac を使用してSTLいます。ワイド文字列を理解できない可能性はありますか?

ありがとう!

0 投票する
3 に答える
4859 参照

c++ - C ++wstringNULLで終了するwchar_t配列から割り当てる方法

C ++標準ライブラリのほとんどのテキストでは、charではなくwchar_tでパラメータ化されていることを除いて、wstringはstringと同等であると記載されており、文字列のみのデモンストレーションに進みます。

まあ、時々、いくつかの特定の癖があります、そしてここに1つあります:私は16ビット文字のNULLで終了する配列からwstringを割り当てることができないようです。問題は、割り当てがヌル文字とそれに続くゴミを実際の文字としてうまく使用することです。これは非常に小さな削減​​です:

この時点で、lは予想される6( "RKData"の文字数)ではありませんが、はるかに大きくなっています。私のテストランでは29です。なぜ29なのですか?わからない。メモリダンプには、29番目の文字の特定の値は表示されません。

だから質問:これは私の標準C ++ライブラリ(Mac OS X Snow Leopard)のバグですか、それとも私のコードのバグですか?16ビット文字のnullで終了する配列をwstringに割り当てるにはどうすればよいですか?

ありがとう

0 投票する
2 に答える
1176 参照

c++ - wstringでstd::use_facetを使用するQt

ワイド文字列の先頭のスペースをスキップするには、クロスプラットフォーム コードが必要です。g++ (および Qt は明らかに) はワイド文字列のスロットをまったく初期化しないようです。したがって、次のコードは VC++ では正常に動作しますが、ほとんどの g++ は bad_cast 例外で失敗します。

仕様によると: 「ロケール オブジェクトのファセット リポジトリに、要求された locale::id のファセットが含まれていない場合の bad_cast 例外」

では、g++ がワイド文字列をどのように扱うのかという一般的な質問はありますか? より狭い質問 - 少なくとも ctype のファセットを初期化する方法は?

更新: いくつかの実験の後、Linux g++ がワイド文字列のファセットを正しく初期化することを発見しました。そのため、コードは機能します。説明されている問題は、mingw のみの場合の機能です。

0 投票する
1 に答える
1754 参照

cstring - Wstring を CString に変換する

Cstring の変数があり、それを wstring に変換する必要があります。