postgresql 漢字

PostgreSQLで漢字を使えるようにするには、いくつかのステップがあります。

  1. データベースのエンコーディングを設定する: データベースのエンコーディングをUTF-8に設定します。UTF-8は、多言語の文字をサポートするための広く使われているエンコーディングです。データベースを作成する際に、以下のように指定します。
    sql
    CREATE DATABASE your_database_name ENCODING 'UTF8';
  2. csvファイルもUTF8にして、
    tomioka_pt2018=# \copy stn from 'stn.csv' delimiter ',' csv header encoding 'UTF-8';
    にする。
  3. で、
    oid | name | folderpath | popupinfo | point_x | point_y | zoneflag
    -----+--------------------------+------------+-----------+-------------+------------+----------
    1 | □□□}□x□□ | Code_Stn | 700001 | 139.6298946 | 35.3670993 | 2
    2 | □V□□□c | Code_Stn | 700002 | 139.619429 | 35.386768 | 2
    3 | □□□c | Code_Stn | 700003 | 139.6159047 | 35.3835577 | 2
    4 | □\□□□□ | Code_Stn | 700004 | 139.629443 | 35.3608848 | 2
    5 | □w□|□□□w | Code_Stn | 700005 | 139.685247 | 35.628743 | 1とこんなザマになるんだけど、SQL(shell)を使うと、
    oid | name | folderpath | popupinfo | point_x | point_y | zoneflag
    -----+--------------------------+------------+-----------+-------------+------------+----------
    1 | 京急富岡 | Code_Stn | 700001 | 139.6298946 | 35.3670993 | 2
    2 | 新杉田 | Code_Stn | 700002 | 139.619429 | 35.386768 | 2
    3 | 杉田 | Code_Stn | 700003 | 139.6159047 | 35.3835577 | 2
    4 | 能見台 | Code_Stn | 700004 | 139.629443 | 35.3608848 | 2
    5 | 学芸大学 | Code_Stn | 700005 | 139.685247 | 35.628743 | 1
    6 | 旗の台 | Code_Stn | 700006 | 139.7027206 | 35.6048821 | 1
    7 | 恵比寿 | Code_Stn | 700007 | 139.7101065 | 35.6467334 | 1
    8 | 国立競技場 | Code_Stn | 700008 | 139.7143886 | 35.6797457 | 1と、ちゃんと出るんだな、
    これが。クライアントの問題だけならいいんだど

ERROR: character with byte sequence 0xe9 0xb7 0x97 in encoding "UTF8" has no equivalent in encoding "SJIS"

に解決策が書いてありました。

yoko_db=# set client_encoding to utf8;
SET
yoko_db=# \encoding
UTF8

As:SQL でも表示されました。

 

 

2024,江端さんの技術メモ

Posted by ebata