1

G-Wan Web/appサーバー用のC/C++サーブレット/ハンドラーを使用してWebアプリケーションを作成することを計画しています。アプリケーションをマルチバイト文字を含む複数の言語で動作させたいので、G-WANサーブレットでこれをどのように処理する必要があるのか​​疑問に思っています。

xbuf_t構造体は、HTTP応答を構築するための基盤となるストレージバッファーとしてchar*のようです。また、charは1バイトなので、Unicodeまたはマルチバイト文字のテキストにどのように影響するかを知りたいと思います。IBM UnicodeLibrary[ICU]などの重いUnicodeライブラリを追加するのは少し気が進まない。

誰かが私に他の人がこの状況にどのように対処しているか、そして必要に応じてユニコードを処理するために利用できるオプションを説明してもらえますか?

4

1 に答える 1

1

サーバー応答 (replyサーブレットの例で呼び出されます) にはバイナリ データを含めることができるため、もちろん可能です。動的に画像 (GIF、PNG、JSON など) を送信する例があるため、返信として送信できるものに制限はありません。

UNICODE を使用しないと、動的に増加するバッファ (サーバー) のxbuf_xcat()ように動作するものを使用しています。sprintf()reply

あなたがすべきことは、UNICODE応答を作成し(お気に入りのUNICODEライブラリ-ANSI Cおよびほとんどすべての言語に1つあり)、それを次のようにreplyバッファにコピーすることですxbuf_ncat();

もちろん、xbuf_ncat();サーブレットの最後にあるすべての大きなバッファーではなく、作成するデータの各部分に対してオンザフライで使用することもできます。あなたの選択。

ほとんどのテキストを使用できる可能性があるため(これはバッファー コピーよりも高速です)、使用する方UTF-8 (アプリケーションによって異なります) よりも適切な選択である可能性があることに注意してください。UNICODExbuf_xcat()

xbuf_ncat();非 ASCII 文字のみを呼び出す必要があります。

関数は UTF-8/UNICODE をサポートするように変更できますが(xbuf_xxx()たとえば、どのエンコーディングが使用されているかを示すフラグを使用して)、これは後で行います。

于 2012-11-17T17:55:42.657 に答える