非 ASCII 文字の使用

非 ASCII 文字を使用するには、Python では、文字列を Unicode に明示的にエンコードまたはデコードする必要があります。IBM® SPSS® Modeler では、Python スクリプトは UTF-8 (非 ASCII 文字をサポートする標準 Unicode) でエンコードされていると想定されます。 以下のスクリプトは、Python コンパイラーが SPSS Modeler によって UTF-8 に設定されているため、コンパイルされます。

日本語を表示するスクリプト例。作成されるノードのラベルは正しくありません。

しかし、結果ノードのラベルは正しくありません。

図 1. 非 ASCII 文字を含むノード・ラベル (正しく表示されていない)
Node label containing non-ASCII characters, displayed
incorrectly

ストリング・リテラル自体が Python によって ASCII 文字列に変換されているため、このラベルは正しくありません。

Python では、文字列リテラルの前に u 文字を追加することによって、Unicode 文字列リテラルを指定できます。

日本語を表示するスクリプト例。ノードのラベルが正しく作成されています。

これにより、Unicode 文字列が作成され、ラベルが正しく表示されます。

図 2. 非 ASCII 文字を含むノード・ラベル (正しく表示されている)
Node label containing non-ASCII characters, displayed
correctly

Python と Unicode の使用は、本書の範囲を超えた大きなトピックです。 このトピックを詳細に扱った書籍やオンライン情報源が数多くあります。