[OSGeoJapan-discuss] QGIS version 1.8の文字化けに関して

OKI Miyuki oki @ hunes.co.jp
2012年 10月 9日 (火) 19:55:26 PDT


沖です。

 なんか忙しくて見てない間に、すっかり乗り遅れて
しまいました(>_<)。

 shape のフィールド名が文字化けするという話ですが、
手元の gdal-1.9.1 のソースでチェックすると、ちゃんと
対処されているように見えます。

 関係ありそうなのは、
ogrshapelayer.cpp というファイルのコンストラクタ
OGRShapeLayer::OGRShapeLayer
という中身で、

    if( CPLGetConfigOption( "SHAPE_ENCODING", NULL ) != NULL )
        osEncoding = CPLGetConfigOption( "SHAPE_ENCODING", "" );

というように、環境変数 SHAPE_ENCODING で元の文字コードが何かを
取得しているようです。

 ここの環境変数の指定ですが、ソースから推測すると、
CPLString OGRShapeLayer::ConvertCodePage( const char *pszCodePage )
という部分に書かれてまして、

SHAPE_ENCODING=LDID/932

と指定すれば、SJIS と判定してもらえそうな雰囲気です。

フィールド名の変換は、
shape2ogr.cpp というファイルの
OGRFeatureDefn *SHPReadOGRFeatureDefn
という所で、上記コードページに基いて

 CPLRecodeを通じ、UTF-8 に変換されている模様です。

とりあえず、参考まで




More information about the OSGeoJapan-discuss mailing list