2

SAS のドキュメントでは、LOWCASE を「I18N レベル 2」として分類しています。これは、1 バイト、2 バイト、またはマルチバイトのデータに使用できることを意味します。したがって、マルチバイト文字シーケンスが含まれている場合でも、UTF8 文字列を正しく小文字に変換し (セッション ENCODING が UTF8 であると仮定)、各バイトを個別に処理することによって文字列が破損しないことが期待されます。

では、KLOWCASE は何のためにあるのでしょうか。他の「K」関数はすべて、KSUBSTR、KREVERSE、および do on など、マルチバイト文字列では機能しない通常の文字列関数と同等のものを提供します。KUPCASE と KLOWCASE は、「K」以外の対応するものと変わらないように見えるという点で異なっているように見えます。おそらく、LOWCASE の I18N レベル 2 としての分類は正しくなく、LOWCASE はマルチバイト シーケンスをまったく認識していないのでしょうか?

4

1 に答える 1

1

LOWCASE が DBCS で期待どおりに機能するかどうかは確認できませんが、そうである可能性が高いと思います (ここに示されていることを考えると: http://support.sas.com/documentation/cdl/en/nlsref/63072/HTML /default/viewer.htm#p1pca7vwjjwucin178l8qddjn0gi.htm )

以前のバージョンの SAS では、DBCS で正しく動作したとは思いません。たとえば、バージョン 8 は言うまでもなく、9.1.3 の互換性ははるかに悪かったです。通常、SAS は後方互換性の理由で機能を無期限に維持するため、これは単なる痕跡機能である可能性があります。

于 2013-03-19T11:31:18.140 に答える