問題タブ [wchar-t]
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.
c# - C# の安全でないコンテキスト / LPWStr のポインター型
アンマネージ C++ コードから渡される wchar_t パラメーターへのポインターが必要なため、安全でないコンテキストがあるとします。例えば:
int パラメータならなんでもいいのですが、???* 型はどうでしょうか。このメソッドの wchar_t を C# 文字列型にマーシャリングするには、パラメーター B の前に [MarshalAs(UnmanagedType.LPWStr)] を記述できますが、このポインターをリンクするには、B のネイティブ ポインター型が必要です。 _myString フィールドに。C# に wchar_t のようなものはありますか? または、ポインター B をクラスの別の場所に格納するために他に何ができますか? ありがとう、ユルゲン
.net - マネージ/アンマネージ C++ の wchar_t NUL
この (管理されていない) C++ ライブラリを使用する必要があります。メソッドの 1 つには、パラメーターとして wchar_t* があります。C# で使用しようとしましたが、すべての試行で「無効な引数」というエラー コードが発生しました。
そのためのマネージ C++ ラッパーを作成しました - 同じ問題です。ここで、C++ ラッパーと、ライブラリに付属のネイティブ C++ サンプルの引数の値を比較しました。私が目にする唯一の大きな違いは、マネージ C++ の NUL は "0 L''" (Visual Studio ウォッチ) であり、アンマネージの例の NUL は単純に "0" であることです。どちらも同じ値を持っています... 0.
これは本当に問題になるのでしょうか?(その文字を手動で「0」に設定しようとしましたが、同じ結果が得られました) はいの場合、どうすれば解決できますか?
編集: 画像: http://img6.imageshack.us/img6/5977/comparisonofvalues.png わかりました、左側は私のコード (マネージド C++)、右側は例 (アンマネージド C++) です。そのままでは、右のものは機能していますが、左のものは機能していません (関数は引数を拒否します)。問題は 17 文字目の NUL にあると思います。さらに考えはありますか?
c++ - 2 つの wchar_t 配列の比較
これはとても単純なことだと確信していますが、私は文字列が簡単な ac# のバックグラウンドから来ており、現在、管理されていない世界に小さな旅をしているので、非常に混乱しています。
基本的に、使用可能なデバイスを一覧表示するために EnumDisplayDevices を使用しています。特定のアダプターをターゲットにしたいので、DeviceString と DeviceName をいくつかの既知の値と比較して、作業する適切なアダプターがあるかどうかを確認する必要があります。
しかし、私は困惑しています。既知の値をそのように定義しました...
しかし、直接比較は機能しません -if(devName == theDisplay.DeviceName)
strcmp
ワイド文字では動作しないように見えるので、どうすればよいかわかりません。誰かこれを行う方法を知っていますか?
ありがとう
c - wchar を Linux コンソールに出力しますか?
私のCプログラムを以下に貼り付けます。bash では、プログラム print "char is ", Ω は出力されません。私のロケールはすべて en_US.utf8 です。
c - Linuxでwprintf UTF16(UTF8である必要があります)?
1 wprintf が 'Ω' を 3A9 (UTF16) として表示するのは本当に奇妙ですが、wctomb は wchar を CEA9 (UTF8) に変換します。私のロケールはデフォルトの en_US.utf8 です。man ページが言ったように、それらは私のロケールに準拠する必要がありますが、wpritnf は UTF16 を使用します。なぜですか?
http://www.fileformat.info/info/unicode/char/3a9/index.htmからの抜粋
Ω (UTF)
UTF-8 (16 進数) 0xCE 0xA9 (cea9)
UTF-16 (16 進数) 0x03A9 (03a9)
2 wprintf と printf を同じプログラムで実行することはできません。wprintf または printf のいずれかを使用する必要があります。なぜですか?
私のプログラムを見てください:
c - Unicode用のCCVSAPI
Unicodeで動作できるCSVデータを操作するためのCAPIが必要です。私はlibcsv(sourceforge.net/projects/libcsv)を知っていますが、wchar_tが使用されていないため、ユニコードでは機能しないと思います(間違っている場合は修正してください)。
お知らせ下さい。
c++ - ベクターが正しいデータ型を格納しない (uint16_t ではなく wchar_t)
ハイパースペクトルデータ(画像、ピクセル強度を与える多くの整数)をベクトルに読み取るネットからのコードがあります。Linux システムでコードを使用して成功しましたが、Windows システムでも同じコードが必要です。Visual Studio 2008 を使用しています。
Linux でデータを読み取ると、整数でいっぱいのベクトルが得られます。Windowsでは、整数を取得してから、いくつかの文字またはバイトデータを取得します。私はそれをよりよく説明するのに十分な知識がありません。
ベクトルは次のように初期化されます。
関連するコードは
machine_endian 部分は実行されません。temp は、数値を int にキャストできるかどうかをテストするためのものです。それは正常に動作します。ただし、temp をベクターに入れると、int だけでなく、より多くの情報が挿入され、wchar_t としてリストされます。下の画像を参照してください。文字サイズと関係があると思いますが、その理由はわかりません。それは私のせいですか、それともVisual Studioのせいですか? 何か案は?
winapi - Windows wchar_t は、基本的な多言語面以外で Unicode 文字をどのように処理しますか?
ここや他の場所 (以下を参照) の他の多くの投稿を見てきましたが、この質問に対する明確な答えはまだありません。
あれは:
- 多くのプログラマーは、UTF-16 は可変長コードであるため有害であると感じているようです。
- wchar_t は、Windowsでは 16 ビット幅ですが、Unix/MacOS では 32 ビット幅です。
- Windows API は、Unicode ではなくワイド文字を使用します。
では、Windows で (U+2008A) Han Character のようなコードを書きたい場合、Windows は何をするのでしょうか?
string - wchar_t*タイプをマネージドUTF-8文字列に変換します
C ++ / CLIでwchar_t*
タイプを管理対象文字列に変換するにはどうすればよいですか?UTF-8
c++ - W2CAはデータを失う可能性がありますよね?
Unicodeサポートを追加しようとしているレガシーVC++6アプリを使用していますが、渡される文字列にW2CA()マクロを使用すると、unsignedcharを期待するrpc呼び出しを呼び出す関数があります。 、一部のUnicode文字列を正しく変換できない可能性があると想定して正しいですか?たとえば、我们的T+G2が問題になると思います。wchar_tバージョンを作成したほうがよいかどうかを判断しようとしているので、質問します。
ありがとう。