質問箱/2052

カテゴリ
サマリEUC JP版を、Shift JIS版に改造したい
バージョン1.4.2
投稿者extraordinary?
状態却下
投稿日2004-02-24 (TUE) 01:36:45

質問

サーバ環境の都合で、EUC JP版を、Shift JIS版に改造して利用しようとしていますが、文字化けするなど、うまく動作してくれません。改造の手順は以下の通りです。

  1. 'euc'を含むファイルを検索。以下のファイルが該当しました。
    func.php
    init.php
    make_link.php
    wiki/3A636F6E6669672F706C7567696E2F6174746163682F6D696D652D74797065.txt
    wiki/496E74657257696B694E616D65.txt
    wiki/496E74657257696B69A5C6A5AFA5CBA5ABA5EB.txt
    wiki.en/3A636F6E6669672F706C7567696E2F6174746163682F6D696D652D74797065.txt
    wiki.en/496E74657257696B694E616D65.txt
  2. このうち、3つ目以下の6ファイルは変更の必要なしと判断しました。 以下の通りに変更しました。
    • init.php 15行目
      define('SOURCE_ENCODING','EUC-JP');→define('SOURCE_ENCODING','SJIS');
    • func.php 409行目、415行目
      charset=euc_jp→charset=x-sjis(2カ所)
    • 30行目
      else if (SOURCE_ENCODING == 'EUC-JP')
      	{
      		$is_pagename = ($is_pagename and preg_match('/^(?:[\x00-\x7F]|(?:[\x8E\xA1-\xFE][\xA1-\xFE])|(?:\x8F[\xA1-\xFE][\xA1-\xFE]))+$/',$str)); // EUC-JP
      	}
      else if (SOURCE_ENCODING == 'SJIS')
      	{
      		$is_pagename = ($is_pagename and preg_match('/^(?:[\x00-\x7F\xA1-\xDF]|(?:[\x81-\x9F\xE0-\xFC])|(?:[\x40-\x7E\x80-\xFC]))+$/',$str)); // SJIS
      	}

手順で間違っている箇所、抜けている箇所ありましたら、是非アドバイスお願いします。

関連

回答

  • reimy 2004-02-24 (TUE) 01:59:22

    charset=x-sjisではなくcharset=Shift_JISです。

  • xtraordinary? 2004-02-24 (TUE) 14:37:04

    ありがとうございます。この箇所だけでは解決しないと思われますので、引き続き、アドバイスお待ちしています。Shift_JIS化する人ってあんまりいないかな?

  • 三浦克介 2004-02-24 (TUE) 21:14:22

    PHPで問題無く処理するためには、internal_encoding(PHPが内部処理で用いるエンコード、及びPHPソースのエンコード)がEUC-JPかUTF-8でないといけません。SOURCE_ENCODINGをSJISにすると、internal_encodingもSJISになるので、日本語処理はボロボロになるはずです(http://jp2.php.net/manual/ja/ref.mbstring.php 参照)。どうしても、internal_encodingをSJISにしたいという場合は、エンコーディングに関する深い知識と相当な改造が必要です。internal_encodingはEUC-JPかUTF-8にし、http_outputのみSJISにすることを強く強くお勧めしますけど・・・、それじゃぁダメなんでしょうか? ちなみに、サーバー環境の都合って?



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-01-24 (水) 22:07:23
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u1. HTML convert time: 0.592 sec.

OSDN