Fedora Core1の文字コードを UTP-8から従来のEUC-JPに変更する方法が載っていました。

http://rarfaxp.riken.go.jp/comp/tips/fedora.html

ただ、変更時期がインストール直後となっています。

直後というのは、直後でないと一切ダメという意味か、作業が進んでからやると、変更前と後で矛盾が生じるとかいう意味なのかどういうことなのでしょうか?

PostgresのDBでトラブっていて、ここを変更してもEUC-JPでDBを作成するとうまくいきません。

よろしくお願いします。

A 回答 (2件)

日頃PostgreSQLを使用しているわけではないので、参考程度です。



>Fedora Core1の文字コードを UTP-8から従来のEUC-JPに変更する方法が載っていました。

OS上での言語の環境変数として、

[root@pent7 root]# su - postgres
-bash-2.05b$ echo $LANG
ja_JP.UTF-8

あるいは、一時的に、ja_JP.eucJPで、dateをみると、

-bash-2.05b$ LANG=ja_JP.eucJP date
2004ǯ 5�� 2�� ������ 05:55:09 JST
(最終表示は異なると思います)

同様に、フランス語の環境とすると、

-bash-2.05b$ LANG=fr_FR date
dim mai 2 05:55:25 JST 2004

の様になります。

>直後というのは、直後でないと一切ダメという意味か、作業が進んでからやると、変更前と後で矛盾が生じるとかいう意味なのかどういうことなのでしょうか?

いつでも変更は可能とおもいますが、今回のPostgreSQLの場合のencodingとは、別の問題と思います。LANGで、一時的に変更するか、export LANGで恒久的に、環境を変更するかではないでしょうか。

>PostgresのDBでトラブっていて、ここを変更してもEUC-JPでDBを作成するとうまくいきません。

PostgreSQLは、ダウンロードされたのでしょうか、Fedora Core 1にも、redHatのどのバージョンから組み込まれたのかは失念しましたが、始めから入っているPostgreSQLでは、"postgres"ユーザも存在します。

$ initdb --no-locale encoding=EUC_JP
あるいは、PostgreSQLをソースからコンパイルするのであれば、

./configure --enable-multibyte[=encoding_system]で、エンコードを選択することが可能です。
引数無しで初期化すると、encodingは、SQL_ASCIIとなります。

$ postmaster&
$ psql -l

-bash-2.05b$ psql -l
List of databases
Name | Owner | Encoding
-----------+----------+-----------
template0 | postgres | SQL_ASCII
template1 | postgres | SQL_ASCII
(2 rows)

-bash-2.05b$ createdb test
CREATE DATABASE
-bash-2.05b$ psql -l
List of databases
Name | Owner | Encoding
-----------+----------+-----------
template0 | postgres | SQL_ASCII
template1 | postgres | SQL_ASCII
test | postgres | SQL_ASCII

-bash-2.05b$ createdb -E EUC_JP test2
CREATE DATABASE
-bash-2.05b$ psql -l
List of databases
Name | Owner | Encoding
-----------+----------+-----------
template0 | postgres | SQL_ASCII
template1 | postgres | SQL_ASCII
test | postgres | SQL_ASCII
test2 | postgres | EUC_JP

SQL_ASCIIでも、insert文で、日本語が入力できました。理由は良く分かりません。

-bash-2.05b$ psql test
Welcome to psql 7.3.4, the PostgreSQL interactive terminal.

Type: \copyright for distribution terms
\h for help with SQL commands
\? for help on internal slash commands
\g or terminate with semicolon to execute query
\q to quit

test=# CREATE TABLE test (
test(# city varchar(80),
test(# date date
test(# );
CREATE TABLE
test=# select * from test;
city | date
------+------
(0 rows)

test=# INSERT INTO test VALUES ('東京','2004-05-02');
INSERT 25177 1
test=# select * from test;
city | date
--------+------------
東京 | 2004-05-02
(1 row)
    • good
    • 0
この回答へのお礼

#1さん、#2さん、こんにちは。

インストールですが、インストールはrpmからしています。

Fedoraのロケール(eucへ)を変更してからcreatedbし、.php(eucで)やってみたところ、無事動きました。

ただ、UTF-8のまま、eucでcreatedbした時はダメでした。

本題の途中から変えてもOKかという点ではOKのもようでした。

initdb からのテストは環境がないためできませんでした。次回、また、試してみようと思います。

どうも、ありがとうございました。

お礼日時:2004/05/02 20:19

こんにちは。

hirasaku です。
直後じゃなくても大丈夫だと思うのですが。
postogreSQLは詳しくないのですが、ちょこっと調べてみたら、postgreでロケールの設定ができるようなのですが。

postgreのバージョンが書かれてないのでわかりませんが
initdb --encoding=EUC_JP --no-locale
もしくは
initdb -E EUC_JP --no-locale
で、defaultのロケールが設定できるようなのですが。
試されましたか
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

今、見られている記事はコレ!

  • 好きだけどケンカばかり……そんな彼との結婚は?

    やたらとケンカが多いカップルというのはいる。それでも腐れ縁なのか長く交際し、いざ結婚しようと決めたときに、ふと思い悩む。こんなにケンカが多いのに、結婚して大丈夫? と。今回は「教えて!goo」に寄せられ...

  • ポンコツな日々:第125話「食べてもOK」

    日々のちょっとしたヘンな出来事を、1話完結形式の4コマで綴っていきます。時にするどく、時にやんわり、ありそうで無さそうな日常の1コマを切り取ってお届けします。

  • “罵声大会”に怒り心頭?名指しで苦情も……駅員泣かせの鉄道ファン

    時として人は趣味に没頭してしまうと、周囲に迷惑をかけてしまいがち。それが公共の場ならばなおさらである。「教えて!goo」に「何で鉄道ファンはマナーの悪い人が多いのでしょうか?」との質問を見つけた。鉄道愛...

  • たまランチ:第102話「ネコ好き」

    外ランチを愛してやまない元気な女子社員・たまちゃん(26)。オシャレなお店より「安くておいしい」お店が大好き! そんな女子力低めなたまちゃんの、色気より食い気な日々をつづります。

  • エルフ田さん:第125話「洗濯干しの『コツ』」

    エルフ(ファンタジーとかに出てくる長寿の種族)の「エルフ田」と、ただの人間である女子社員2人による日常ギャグ。エルフならではのズレたツッコミでバシバシ人間界の話題を斬っていきます。

おしトピ編集部からのゆる~い質問を出題中

お題をもっとみる


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ