嘉山と申します
この文字化けはShapeファイルのフィールド名のバイト数の制限の問題です。
フィールド名が日本語になっていますがShiftJISコードの場合日本語のバイト数が1文字2バイトです。
UTF-8にすると日本語の1文字が3バイトぐらいになるのでShifJISの日本語より同じ文字列でも
バイト数が多くなります。
Shapeファイルのフィール名の長さは10バイトなので日本語のフィールド名がUTF8に変換した
時に10バイトを超えた場合は文字化けします。
これはレコード内の日本語についても同様のことがあるのでShiftJISのShapeファイルをUTF8に
エンコーディング変えることは実用的ではないと思います。
UTF8でデータをあつかいたい場合は他の形式を利用したほうが無難です。