問題タブ [widestring]

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 投票する
4 に答える
3210 参照

c++ - Windows上のC++でのUnicodeでの大文字と小文字を区別しない検索

昨日同様の質問をしましたが、別の方法でリフェーズする必要があることを認識しています。

つまり、WindowsのC ++で、文字列がUnicode形式(ワイド文字、wchar_t)であり、文字列の言語がわからない場合に、大文字と小文字を区別せずに文字列(別の文字列内)を検索するにはどうすればよいですか? 。針が干し草の山にあるかどうか知りたいだけです。針の位置は私には関係ありません。

背景:多くのメール本文を含むリポジトリがあります。メッセージはさまざまな言語(日本語、ドイツ語、ロシア語、フィンランド語、名前を付けます)で書かれています。すべてのデータはUnicode形式であり、C ++アプリケーションのワイド文字列(wchar_t)にロードします(本文はMIMEデコードされているため、デバッガーでは実際の日本語、ドイツ語の文字を確認できます)。電子メールメッセージにはその詳細が含まれていないため、メッセージの言語がわかりません。また、単一の電子メール本文に複数の言語の文字が含まれている場合があります。

私はwcsstrのようなものを探していますが、ケースに敏感でない方法で検索を実行する機能を備えています。テキストの言語を知らなければ、大文字から小文字に100%適切に変換することは不可能であることを私は知っています。可能な99%のケースで機能するソリューションが必要です。

Visual Studio 2008をC++、STL、Boostで使用しています。

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

c++ - ワイド文字列リテラルと文字列マクロの組み合わせ

次のような文字列のマクロがあります。

次に、次のようにして、このマクロを使用して幅の広い文字列を作成します。

ただし、これにより「不一致の文字列を連結する」コンパイルエラーが生成されます。

APPNAMEマクロをワイド文字列リテラルに変換する方法はありますか?

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

c++ - System ::WideStringをchar*に、またはその逆に変換するにはどうすればよいですか?

とを比較する必要がある状況がありchar*ますWideString
WideStringをC++でchar*に変換するにはどうすればよいですか?

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

visual-c++ - Visual C 2008 Express の wctype はどこにありますか?

Visual C 2008 Express を使用して、サードパーティ ソフトウェアを Linux から Windows に移植しています。

関数 `wctype' だけに問題があります。%VCDIR%/include/wctype.h ファイルで次のように宣言されています。

ただし、リンクしようとすると、次のエラーが発生します。

テストコードは次のとおりです。

エラー メッセージでわかるように、コードは正常にコンパイルされていますが、リンクできません。

何をすべきか?私はこのソフトウェアの開発者ではないので、元の開発者を混乱させる可能性があるため、「wctype」関数を別のものに置き換えたくありません。

お待ちいただきありがとうございます。

PS Dependency Walker を使用して MSVCRT90.DLL ファイルのインポート テーブルも調べましたが、「wctype」関数はありません。

0 投票する
6 に答える
1830 参照

delphi - Delphi、文字列とワイド文字列のメモリ使用量の問題、Unicode 以外の VCL (D7)

それらを説明するWideStringパラメーター(名前、説明など)を持ついくつかのクラスを保存しています。これらすべての WideString を単純な「文字列」に変更すると (実際にはエイリアスを使用しているため、1 行だけ変更する必要があります)、メモリ使用量が約 5% 大きくなります!! 以前よりも...文字列の各文字が WideChar の 2 倍小さいため、どのように可能でしょうか?

前もって感謝します!

メートル。

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

delphi - Delphiでのワイドストリングの互換性の問題

Delphi2006を使用したdllビルド

Delphi2010でビルドされた実行可能ファイル

dllにステップインすると、aPath='123'になります。実際、私が渡す文字列はすべて正確に半分にカットされます。

1.)文字通り半分になるのはなぜですか?2.)どうすれば修正できますか?

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

delphi - Delphi2010ワイド関数と文字列関数

現在、Delphi2007プロジェクトをDelphi2010に変換しています。すでにUnicodeを使用していました(WideStringsおよびTNT Unicodeコントロールを介して)。

WideUpperCaseなどのすべてのWide関数を、UpperCaseなどの同等の関数に置き換えることを期待していましたが、同じようには機能しません。たとえば、WideUpperCaseはUpperCaseとは動作が異なります。WideUpperCaseはCampañasを正しく大文字にしますが、UpperCaseはñを小文字のままにします。

他に知っておくべき違いはありますか?たとえば、WideFormatとFormatは同じように機能しますか?

ありがとう

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

c++ - GCC での 2 バイト (UCS-2) 幅の文字列

Visual C++ プロジェクトを GCC に移植するときに、wchar_t データ型がデフォルトで 4 バイトの UTF-32 であることがわかりました。コンパイラ オプションでこれをオーバーライドできますが、4 バイト幅の文字列を想定しているため、RTL の wcs* (wcslen、wcscmp など) の部分全体が使用できなくなります。

今のところ、これらの関数の 5 ~ 6 個をゼロから再実装し、実装を #define しました。しかし、より洗練されたオプションがありますか?たとえば、2 バイトの wchar-t を使用して GCC RTL をビルドし、リンクされる?

私が求めている GCC の特定のフレーバーは、Mac OS X 上の Xcode、Cygwin、および Debian Linux Etch に付属するものです。

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

c++ - sprintf が失敗するのはいつ、なぜですか?

swprintf を使用して文字列をバッファに作成しています (特にループを使用しています)。

テスト中にアサートがヒットしない場合、実際のコードではヒットしないと確信できますか? つまり、nWritten < 0 であるかどうかを確認して処理する必要がありますか?それとも、問題がないと安全に想定できますか?

どのような状況で -1 を返すことができますか? ドキュメントには、多かれ少なかれ「関数が失敗した場合」と記載されています。ある場所で、引数(つまり、フォーマット文字列と可変引数)が一致しない場合に失敗することを読んだことがありますが、それは心配ありません。

この場合、バッファ オーバーランについても心配していません。バッファが十分に大きいことはわかっています。