hypweb.net
XOOPSマニア  最新情報のRSS(サイト全体)
[ 自宅サーバーWebRing |ID=54 前後5表示乱移動サイト一覧 ]

19年9月18日(Wed) 0時23分
TOP » フォーラム » XOOPS » xpWiki » EUC-JPからUTF-8への切り替え

EUC-JPからUTF-8への切り替え


Posts tree


Previous post - Next post | Parent - Children.1 | Posted on 2016-4-23 20:55
TRT 

はじめまして。
先日、x-updateにていくつかのモジュールをアップデートしたところ、
どうやら文字コードがEUCからUTF-8に変わったらしくXOOPS全体で文字化けが発生しました。
仕方ないのでDBを全てエクスポートし、文字コードをUTF-8に変更した上でインポートし、
d3forumなどは正しく表示されるようになりました。

ただxpwikiだけは全てのページがリンク切れの状態となってしまいます。
念のためバックアップ&リストアの手順に従いリストアを試してみましたが状況は変わりません。
なおDBシンクロを行おうとすると1ページも進捗が出ないうちにエラーが出て止まります。
エラーの内容は以下トピックの質問と同じでした。

http://hpwb.net/1Np3pnT (xoops.hypweb.net)

ここから何かしらの変換手順が必要なのでしょうか?
ご教示いただければと思います。

Votes:0 Average:0.00
Reply
Previous post - Next post | Parent - Children.1 | Posted on 2016-4-23 21:48 | Last modified
nao-pon  Webmaster From: 愛知県  Posts: 5799

TRT さん、こんにちは。

EUC-JPからUTF-8への移行は、xpWiki のトップページにもリンクがありますが、バックアップ & リストア や UTF-8 への移行について のページを参考に移行作業をしてください。

あと、X-update でのアップデートでサイト設定が UTF-8 に勝手になることはないので、文字化けの原因は他にあったのかも知れません。

Votes:0 Average:0.00
Reply
Previous post - Next post | Parent - Children.1 | Posted on 2016-4-24 0:48
TRT 

先に書いた通り、「バックアップ & リストア や UTF-8 への移行について」に従ってバックアップを取り、
private/catcheに自動保存された16ファイルをリストアから取り込みましたが、変化はありませんでした。
バックアップで作成された各ページのファイル名と現在サーバに上がっているファイル名は同じなのですが、
EUCからUTF-8へ変換されるとこのファイル名は変わりますか?

あと文字化けの原因についてですが、はっきりとはしていません。
ただアップデート&文字化け後にDBの言語設定を確認したところEUCだったので、
PHP側の何かしらの言語設定がUTF-8になったのだと思います。
実際にDBのコンテンツをUTF-8に変換したら文字化けは解消されましたし。
(CubeUtilsのアップデートあたりが怪しかったような気はします。。。)
ただ文字化けを確認したのはpopnupblogとd3forumあたりだけでxpwikiについては
コンテンツをチェックしなかったので、xpwikiがその時点でおかしかったのかはわかりません。

Votes:0 Average:0.00
Reply
Previous post - Next post | Parent - Children.1 | Posted on 2016-4-24 11:21
nao-pon  Webmaster From: 愛知県  Posts: 5799
引用:

先に書いた通り、「バックアップ & リストア や UTF-8 への移行について」に従ってバックアップを取り、
private/catcheに自動保存された16ファイルをリストアから取り込みましたが、変化はありませんでした。

すみません。見落としていました。

状況から見ると互換モジュールの全般設定の使用言語が「ja_utf8」になっていると思います。何らかの原因でここが「japanese」から「ja_utf8」になってしまったのだと思います。

xpWiki はWikiデータはページ毎にファイルに保存しており、そのファイル名は文字エンコーディングにより異なります。

xpWikiバックアップデータには全般設定の使用言語の値が保存されており、その値により適切に文字コード変換などを行うようになっていますので、バックアップデータと現在の文字エンコーディングが同じであれば変換は行われません。

一番確実なのは、EUC-JP で正常運用されていた時のバックアップデータがあればそれを現在の環境にリストアすればいいのですが、そのバックアップデータがないのであれば次をお試し下さい。

  1. xpWiki の管理ツールから「バックアップリストア」の画面を開く。
  2. 別のタブまたはウィンドウで、互換モジュールの全般設定を開き使用言語を「japanese」にする。
  3. バックアップリストア」の画面をリロードする(ページのエンコーディングがEUC-JPになります)
  4. バックアップを行う
  5. 互換モジュールの全般設定を開いているタブで使用言語を「ja_utf8」にする。
  6. サーバーの html/modules/xpwiki/private/wiki ディレクトリの *.txt ファイルを手元にバックアップしてから削除する。
  7. バックアップリストア」の画面を開き、リストアする。
  8. データーベースシンクロを行う。

こんな感じで如何でしょうか。

Votes:0 Average:0.00
Reply
Previous post - Next post | Parent - Children.1 | Posted on 2016-4-24 15:41
TRT 

詳細な手順ありがとうございます。
サイトの言語設定をja_utf8にしていれば、リストア時にファイル名含めUTF-8への変換が行われるのでしょうか。
サイトの言語設定をja_utf8に変更してからリストアを実施し、展開された.txtファイルのタイトルを確認したところ、
EUC-JPでエンコードされているようです。

ファイル名サンプル(リストア後)
32303135C7AFC8C7B7D0B1C4B9D6BAC2.txt

またDBシンクロを行うと1ページも処理されないままエラーが発生します。
一旦xoops_trust含めてxpwikiモジュールを削除し、x-update経由で入れ直してからリストアとDBシンクロを
掛けたほうが安全でしょうか?

Votes:0 Average:0.00
Reply
Previous post - Next post | Parent - Children.1 | Posted on 2016-4-24 16:38 | Last modified
nao-pon  Webmaster From: 愛知県  Posts: 5799
引用:

サイトの言語設定をja_utf8にしていれば、リストア時にファイル名含めUTF-8への変換が行われるのでしょうか。
サイトの言語設定をja_utf8に変更してからリストアを実施し、展開された.txtファイルのタイトルを確認したところ、
EUC-JPでエンコードされているようです。

ん?現状のサイトの言語設定は japanese ですか?データベースを UTF-8 に変換したら文字化けが直ったということなので、てっきりそこが ja_utf8 になっているのだと思ったのですが・・・。

サイトの言語設定が japanese の状態で文字化けをして、データベースを UTF-8 にしたところ直ったということであれば、データーベース周りの設定がおかしいように思います。

PHP および MySQL のバージョンは何ですか?また、データベースとテーブルと各カラムの照合順序は何になっていますか?

xpWikiリストアに関しては、japanese(EUC-JP) の状態でバックアップしたものを ja_utf8(UYF-8) の環境にリストアする場合にファイル名・コンテンツのUTF-8への変換が行われます。

よって、先の手順の 2〜4 が必要になります。

まずは、これ以上データの齟齬を生まないためにも、現状のデータをFTPできっちりバックアップを取ってから、試してください。

Votes:0 Average:0.00
Reply
Previous post - Next post | Parent - Children.1 | Posted on 2016-4-24 21:37
TRT 

現状のサイトの言語設定はja_utf8になっています。
手順に従っていったんjapaneseに変えバックアップ後、言語設定をja_utf8に戻し、
サーバ上にある.txtファイルを削除してからリストアを実施しました。
結果、展開されたファイルを見ると先ほど記載した通りEUC-JPでエンコードされた
ファイル名となっています。

PHPは5.2.17、MySQLは4.0.27、照合順序は不明です。
phpmyadmin画面の言語設定はutf-8を選択しています。

Votes:0 Average:0.00
Reply
Previous post - Next post | Parent - Children.1 | Posted on 2016-4-25 17:50
nao-pon  Webmaster From: 愛知県  Posts: 5799

PHP、MySQL 共にバージョンが古めですので私の手元に同じバージョンのテスト環境がないので、私のテスト環境(PHP: 5.5.33, MySQL: 5.1.73)で試したところ EUC-JP のバックアップファイルを UTF-8 環境にリストアしたところ問題点はありませんでした。

EUC-JP でバックアップしたアーカイブの最初のファイルを解凍すると private/cache/.charset というファイルがありますが、そのファイルの中身は "eucJP-win" になっていますか?

Votes:0 Average:0.00
Reply
Previous post - Next post | Parent - Children.1 | Posted on 2016-4-25 23:23
TRT 

UTF-8になっていました。
と、改めてLegacy Systemから使用言語をjapaneseに変更してみたのですが、
変更しても管理画面トップに表示される使用言語はja_utf8のままでした。
サイト全体の設定がおかしくなってるみたいです。

バックアップファイルを解凍して出てくる.txtファイルはEUCでエンコードされているので、
ひとまず.charsetを手で書き換えてリストアを再度行えば復旧までは出来そうでしょうか。
直ったらアップデートは封印して騙し騙し使います。。。

Votes:0 Average:0.00
Reply
Previous post - Next post | Parent - Children.1 | Posted on 2016-4-28 20:53
nao-pon  Webmaster From: 愛知県  Posts: 5799
引用:

ひとまず.charsetを手で書き換えてリストアを再度行えば復旧までは出来そうでしょうか。

そうですね。プログラム上はそれでいいはずですが、現状の XOOPS 自体の状態が不安定のようでよく分からないので、どのような結果になるか私も分かりません。

最悪、現状復帰できるようにバックアップをしてからお試し下さい。

Votes:0 Average:0.00
Reply

なし Re: EUC-JPからUTF-8への切り替え

msg# 1.1.1.1.1.1.1.1.1.1.1
Previous post - Next post | Parent - Children.1 | Posted on 2016-4-29 23:57
TRT 

.charsetを"eucJP-win"に書き換えリストアを実行したところ、1つ目のファイルリストア
DBシンクロを行うようメッセージが表示されました。
一旦すべてのバックアップファイルのリストアを行い、wikiページへのリンクが正常に機能する事、
ページが表示される事まで確認できました。
ただ添付ファイルを開こうとすると「壊れているため表示できません」とメッセージが表示されエラーになります。
またDBシンクロを行おうとすると以下のエラーメッセージが表示されます。
「Headers already sent at /home/tanstafl/xoops_trust/modules/xpwiki/plugin/dbsync.inc.php line 190.」

なお以下のトピックを参考に、どのページでエラーが出たか表示されるように一部PHPファイルを書き換えています。
処理ログの1行目でエラーメッセージが表示されるので、処理が進む前にエラーが出ているようです。
http://hpwb.net/1Np3pnT

おかげ様でリストアまであと1歩というところまで来ましたが、引き続き助力いただければと思います。

Votes:0 Average:0.00
Reply
nao-pon

なし Re: EUC-JPからUTF-8への切り替え

msg# 1.1.1.1.1.1.1.1.1.1.1.1
Previous post - Next post | Parent - Children.1 | Posted on 2016-5-2 12:05
nao-pon  Webmaster From: 愛知県  Posts: 5799

添付ファイルもページ名と同様のエンコードを行なっていますので、その部分で何か齟齬があるのかも知れません。

DBシンクロでは、もっとエラーメッセージを出すために dbsync.inc.php の

176
177
        error_reporting(E_ERROR);
        //error_reporting(E_ALL);

176
177
        //error_reporting(E_ERROR);
        error_reporting(E_ALL);

にして確認してみてください。

Votes:0 Average:0.00
Reply

なし Re: EUC-JPからUTF-8への切り替え

msg# 1.1.1.1.1.1.1.1.1.1.1.1.1
Previous post - Next post | Parent - Children.1 | Posted on 2016-5-2 16:08
TRT 

dbsync.inc.phpの176行目、177行目を変更して再度DBシンクロを実行しましたが、
エラーメッセージは変わらず、以下の通りでした。

DB 'xpwiki_pginfo' Now converting... ( * = 10 Pages)
Headers already sent at /home/tanstafl/xoops_trust/modules/xpwiki/plugin/dbsync.inc.php line 190.

今更ですが、変更するファイルはxoops_trust側のplugin配下にあるdbsync.inc.phpで
あっていますか?
html側にもpluginフォルダはありましたが、こちらは空だったのでそのままにしてあります。

Votes:0 Average:0.00
Reply

なし Re: EUC-JPからUTF-8への切り替え

msg# 1.1.1.1.1.1.1.1.1.1.1.1.1.1
Previous post - Next post | Parent - No child | Posted on 2016-5-16 0:11
TRT 

しばらく忙しくて手を出す暇がありませんでした。
状況に変化はないのですが、DBシンクロ以外で何かできる手立てはないでしょうか。

Votes:0 Average:0.00
Reply

Post into this topic

Subject
guestname
Body

  Advanced search

このページのTopへ
ログイン
ユーザ名:

パスワード:

オートログイン

Basic 認証 | SSLログイン

Register now! | Lost Password?



メインメニュー
ブックマーク
Please log in to use it.
[Login]
サイト内 Wiki
☆ 検索 ☆



高度な検索(サイト内)
FireFox検索プラグイン
オンライン状況
合計 55 人がオンライン中 :-)
(フォーラム : 1 人)

登録ユーザ: 0 & ゲスト: 55

もっと...
サイト情報
管理人

nao-pon
 

登録ユーザ数: 4614


Web Services by Yahoo! JAPAN
楽天ウェブサービスセンター
Amazon.co.jpアソシエイト
現在ページのQRコード
現在ページのQRコード
[携帯対応]
参照元情報