4

VB 6.0 アプリケーションで、Unicode 文字がサポートされていないという問題に直面しています。アプリケーションのレコードセットのフィールドに漢字を設定する必要があります (各フィールドのサイズはプログラム自体から設定されます)。中国語の文字をレコードセットのフィールドに設定すると、Multiple-step operation エラーが発生します (保持フィールドのサイズが十分でないため)。サーバーのコントロール パネルの地域設定で言語を中国語に設定している場合、このエラーは発生しません ([コントロール パネル] > [地域と言語の設定] > [管理] タブ > [システム ロケールの変更] > [中国語] )。

これを設定すると、アプリケーションの時間設定が変更されます。コントロールパネルから変更せずに、この問題を解決するにはどうすればよいですか。

助けてください。

前もって感謝します。

4

2 に答える 2

3

Windows では、時刻と日付の形式を維持しながら、地域設定を中国語に設定できます。http://www.techpavan.com/2009/04/07/change-time-format-windows/


Visual Basic 6 アプリケーションでの Unicode の使用については、詳細な説明と例が記載された記事をご覧ください: http://www.example-code.com/vb/vbUnicode1.asp

このリンクを引用:

内部的に、VB6 は文字列を Unicode として格納します。VB6 プログラムは、中国語、日本語、アイスランド語、アラビア語など、あらゆる文字を含むあらゆる言語の文字列を操作できます。完全に Unicode に対応しています。1 つの文字列に複数の言語の文字が含まれる場合があります。これらの文字列はデータベースやファイルなどに保存できますが、問題はありません。標準の VB6 コントロールで外国語の文字を表示 (つまり、グリフをレンダリング) しようとした場合にのみ、問題が発生します。

文字列を表示するとき、標準の VB6 テキスト ボックスとラベル コントロールは、Unicode から ANSI への暗黙的な (および内部的な) 変換を行います。これは、すべての問題を引き起こす交絡行動です。VB6 の内部で、ランタイムは Unicode をオペレーティング システムの現在の Windows ANSI コード ページ識別子に変換しています。システムの ANSI コード ページを変更する以外に、この変換を変更する方法はありません。

標準の VB6 テキスト ボックスとラベル コントロールは、指定できる文字エンコーディングに従って ANSI バイトを表示します。Unicode から ANSI への変換後、VB6 はコントロールの Font.Charset プロパティに従って文字データを表示しようとします。このプロパティを変更しない場合、ANSI 文字セットと同じになります。コントロールの Font.Charset を変更すると、VB6 が "ANSI" バイトを解釈する方法が変わります。つまり、バイトを「ANSI」ではなく他の文字エンコーディングとして扱うようにVB6に指示しています。注: VB6 は、すべての主要言語の文字を表示できます。そうするように指示するだけでよく、そのためには正しいバイトが内部に配置されている必要があります。

于 2013-08-21T16:23:14.213 に答える
-2

これらのコントロールのフォントを Lucida Sans Unicode に設定して、Unicode サポートを追加してみてください。

于 2015-01-02T01:36:13.297 に答える