Nucleus(JP)フォーラム Forum Index

Find on the forum:
OR  AND    » Advanced Search

未返信の記事を表示全てのフォーラムを既読にする

新しいトピックを投稿 トピックに返信
投稿者 メッセージ
namu



登録日: 2008.04.03
記事: 19

記事 日時: 2008.04.04 (金) 17:08   記事の件名: 文字化けで困っております
引用付きで返信

Nucleus3.3(UTF-Coolを使用しております。
XREAサーバーではOKなのですが、上位サーバーのCORESERVERにてインストールしたところ、
文字化けで使い物になりません。
もちろんMySQLはUNICODEで作成しております。

同じ悩みを解決された方がいらっしゃいましたならば、ご教授お願い致します。
何が異なるのでしょうか?
データ移行せずに、こちらは新規でブログを立ち上げるつもりでおります。
ちょっとしたヒントでもいいですので、よろしくお願いします。

トップに戻る

ユーザーのプロフィールを表示 プライベートメッセージを送信
yama.kyms
モデレーター
モデレーター


登録日: 2005.07.07
記事: 1049
所在地: fujisawa

記事 日時: 2008.04.04 (金) 17:34   記事の件名:
引用付きで返信

手順を書こうと思いましたが、、すいません。「nucleus set names」でGoogleあたりで検索してみてください。
解決した場合、もしよければ当トピックに手順を具体的にまとめていただけると次に迷う人の助けになると思います。
(今年あたりからこの種のトラブルが増えそうな気がします)

_________________
yama Nucleus CMS 3.51JP

トップに戻る

ユーザーのプロフィールを表示 プライベートメッセージを送信 投稿者のウェブサイトに移動
Andy
モデレーター
モデレーター


登録日: 2004.03.18
記事: 1490
所在地: 横浜

記事 日時: 2008.04.04 (金) 17:43   記事の件名:
引用付きで返信

globalfunctions.php で sql_connect();
という行を探し,その後ろに
sql_query('set names utf8');
と入れてみてください。

このコード,コアに入れたらという話もあったと思うのですが,環境によってはこれを入れることで
文字化けしてしまうこともあります。条件を調べて入れられないかどうかも試してみたのですが,
DBの環境変数が全く同じでも,入れた方がいい場合,入れないほうがいい場合があったので,
結論としては自動的な対応は難しく,このように動かないときに入れるといった対処にならざるを
得ないようです。

_________________
Foodyn CMS開発日誌
http://www.matsubarafamily.com/lab/

トップに戻る

ユーザーのプロフィールを表示 プライベートメッセージを送信 投稿者のウェブサイトに移動
きゃしゃ



登録日: 2007.12.15
記事: 302
所在地: 河内平野

記事 日時: 2008.04.04 (金) 20:05   記事の件名:
引用付きで返信

install.phpにも同様に
Code:
mysql_query("SET NAMES utf8");

を。
しかる後に、phpMyAdminで文字化けしてないことを確認。

しかし、FAQなのに難儀ですね。環境依存で判定不能とは。

トップに戻る

ユーザーのプロフィールを表示 プライベートメッセージを送信
namu



登録日: 2008.04.03
記事: 19

記事 日時: 2008.04.04 (金) 20:58   記事の件名: ご返答ありがとうございます。
引用付きで返信

皆様からのご返答を感謝申し上げます。

ところで、以前、ここで類似記事を探して以下のテキストをglobalfunctions.phpに追加しましたがダメでした。
かえってひどい状態になり、すぐ戻したりしました。
(★一番下に追加記載した状態)
/**
* Connects to mysql server
*/
function sql_connect() {
global $MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD, $MYSQL_DATABASE, $MYSQL_CONN;

$MYSQL_CONN = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD) or startUpError('<p>Could not connect to MySQL database.</p>', 'Connect Error');
mysql_select_db($MYSQL_DATABASE) or startUpError('<p>Could not select database: ' . mysql_error() . '</p>', 'Connect Error');
mysql_query("SET NAMES utf8");


CORESERVERでのインストールは一応は可能なようなのですが、最初から一部に文字化けがあり、
その他、アイテムの追加で記事を書くと、全てが文字化け状態でした。

きゃしゃさんのはinstall.phpにやるようですね?
ということは、再度インストール作業をやるってことなんでしょうか?
記載箇所も上記と同じ場所でよろしいのでしょうか?(まだ見てませんが…)
もし有効な手段であればタイムロスは厭わないつもりです…。

CORESERVERは昨年の夏頃に出たようですので、やはりまだ情報が少ないのでしょうかね!
XERAの情報はけっこうあふれているので、同じ気持ちでおりました。(笑)
私はまだ初心者ですので、分からないことばかりです。
これからも、よろしくお願い致します。

トップに戻る

ユーザーのプロフィールを表示 プライベートメッセージを送信
denden-cafe



登録日: 2008.02.11
記事: 19

記事 日時: 2008.04.04 (金) 22:01   記事の件名: Re: ご返答ありがとうございます。
引用付きで返信

namu wrote:
CORESERVERでのインストールは一応は可能なようなのですが、最初から一部に文字化けがあり、
その他、アイテムの追加で記事を書くと、全てが文字化け状態でした。


今晩は。

私もCORESERVERを利用しています。現在、実運用に向けて検証中ですが、私が利用しているサーバではglobalfunctions.phpとinstall.phpに'SET NAMES utf8'を入れることで特に問題なく動いています。

具体的には、globalfunctions.phpとinstall.phpのmysqlに接続直後に

Code:
sql_query('set names utf8');


を挿入しています。この修正を行わなくてもブログ上では文字化けは起きていなかったのですが、DBに格納される際におかしな変換がかかっていたようでphpMyAdminで見ると文字化けした状態でした。

というわけで、namuさんが困っておられるような問題は起きていません。ちなみに私が利用しているのは、s43です。CORESERVERのスペック表を見る限り、PHP、MySQLのバージョンはどのサーバも同じみたいですが、namuさんが利用されているサーバと私が利用しているサーバでは微妙に設定が違うのかもしれません。

とりあえず、namuさんの環境でphpinfoとphpMyAdminでエンコーディング周りの設定を確認してみていただけますでしょうか。ちなみに、私が利用しているサーバでは次のようになっています。

■PHP(phpinfo)
default_charset no value
mbstring.detect_order auto
mbstring.encoding_translation Off
mbstring.func_overload 0
mbstring.http_input auto
mbstring.http_output pass
mbstring.internal_encoding UTF-8
mbstring.language Japanese
mbstring.strict_detection Off
mbstring.substitute_character no value

■MySQL(phpMyAdmin->MySQL のシステム変数)
character set client utf8
character set connection utf8
character set database utf8
character set filesystem binary
character set results utf8
character set server utf8
character set system utf8
collation connection utf8_unicode_ci
(グローバル値) utf8_general_ci
collation database utf8_general_ci
collation server utf8_general_ci

私自身は、PHPもMySQLもあまり詳しくは分かりませんが、詳しい方に適切なアドバイスをいただけるかもしれません。

_________________
はてな始めました
Nucleusの設定メモを少しずつ書いてます。
http://d.hatena.ne.jp/denden-cafe/
でんでん♪

トップに戻る

ユーザーのプロフィールを表示 プライベートメッセージを送信 投稿者のウェブサイトに移動
namu



登録日: 2008.04.03
記事: 19

記事 日時: 2008.04.05 (土) 12:05   記事の件名:
引用付きで返信

denden-cafeさん、ご返信ありがとうございます。

私のCORESERVERは、s27です。
■MySQL(phpMyAdmin->MySQL のシステム変数 は、ご提示のと同様でした。

また、■PHP(phpinfo)についてですが、どうやって見るのかがわかりませんでした。
できれば、PHPの調べる手順も教えていただければ嬉しいのですが?

あと、以下の記述についてですが、-----------------------------------------
具体的には、globalfunctions.phpとinstall.phpのmysqlに接続直後に

sql_query('set names utf8');

を挿入しています。
------------------------------------------------------------------------------------
「接続直後に…」とありますが、インストール直後ということでしょうか?

それと、できれば記載する箇所(何行目の何処の下…などと)を教えていただけませんでしょうか?

一応、皆様のご教示のとおり、再度インストールからやってみるつもりでおりますが、
実際にCORESERVERを使用している方のアドバイスは貴重な意見になりますので、
お手数おかけしますが、よろしくご教授お願い致します。

トップに戻る

ユーザーのプロフィールを表示 プライベートメッセージを送信
denden-cafe



登録日: 2008.02.11
記事: 19

記事 日時: 2008.04.05 (土) 12:51   記事の件名:
引用付きで返信

namu wrote:

また、■PHP(phpinfo)についてですが、どうやって見るのかがわかりませんでした。
できれば、PHPの調べる手順も教えていただければ嬉しいのですが?


phpinfoはPHPの関数です。phpinfoの情報を見るには、phpinfo.php(ファイル名は何でもいいですが)という名前のファイルを作成して、

Code:
<?php
phpinfo();
?>


というコードを書き込んだものを、Nucleusをインストールしたディレクトリにアップロードして、ブラウザからそのファイルにアクセスしてください。情報を確認したら、アップロードしたphpinfo.phpは必ず削除してください。そのままにしておくと、PHPの設定情報を世界中に公開してしまうことになるので、セキュリティリスクが生じます。

namu wrote:
「接続直後に…」とありますが、インストール直後ということでしょうか?

それと、できれば記載する箇所(何行目の何処の下…などと)を教えていただけませんでしょうか?


すみません。ちょっと分かりにくかったですね。
>「接続直後に…」
というのは、install.phpとglobalfunctions.phpのソースコード上で、MySQLに接続するコードの直後に挿入という意味でした。ソースコードを修正した後、サーバにファイルをFTP転送してインストールを行いました。

namuさんの最初の書き込みではNucleus3.3をご使用とのことでしたが、セキュリティアップデートを含む3.31sp1が最新版なので、行番号は3.31sp1の場合で示します。これからインストールなら最新版をインストールされたほうがいいと思いますが、事情があって3.3をご利用になる場合は行番号が少しずれるかもしれません。該当部分のコードはまったく同じなので、行番号だけ読み替えてください。わたしは最初、3.3をインストールした後、すぐにアップデートが出たので3.31sp1をインストールしなおしましたが、3.3、3.31sp1のどちらでも文字化けがないことを確認できてます。

■install.php
528行目~
Code:
// 2. try to log in to mySQL
global $MYSQL_CONN;
$MYSQL_CONN = @mysql_connect($mysql_host, $mysql_user, $mysql_password);

if ($MYSQL_CONN == false) {
   _doError('Could not connect to mySQL server: ' . mysql_error() );
}
mysql_query("SET NAMES utf8"); // この行を追加


■globalfunctions.php
478行目~
Code:
/**
  * Connects to mysql server
  */
function sql_connect() {
   global $MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD, $MYSQL_DATABASE, $MYSQL_CONN;

   $MYSQL_CONN = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD) or startUpError('<p>Could not connect to MySQL database.</p>', 'Connect Error');
   mysql_select_db($MYSQL_DATABASE) or startUpError('<p>Could not select database: ' . mysql_error() . '</p>', 'Connect Error');
   mysql_query("SET NAMES utf8"); // この行を追加

   return $MYSQL_CONN;
}


以上の変更を行った後、サーバにNucleusの全ファイルをアップロードして、クリーンインストールしてみてください。

_________________
はてな始めました
Nucleusの設定メモを少しずつ書いてます。
http://d.hatena.ne.jp/denden-cafe/
でんでん♪

トップに戻る

ユーザーのプロフィールを表示 プライベートメッセージを送信 投稿者のウェブサイトに移動
namu



登録日: 2008.04.03
記事: 19

記事 日時: 2008.04.07 (月) 14:08   記事の件名: ありがとうございました!
引用付きで返信

denden-cafeさん、どうもありがとうございました。
おかげさまで、文字化けが解消しました。
ちょっと用事があって、返事が遅れてすみませんでした。
これからも何かありましたならば、またよろしくお願いいたします。
ありがとうございました。

トップに戻る

ユーザーのプロフィールを表示 プライベートメッセージを送信
fratdrive



登録日: 2004.11.06
記事: 28
所在地: 埼玉県桶川市

記事 日時: 2009.11.28 (土) 18:20   記事の件名: お礼
引用付きで返信

こんにちは。

Nucleus CMS v3.31SP3を、さくらスタンダードから、CORESERVER「CORE-B」に引越しをしています(同時にEUC-JPからUTF-8に変更)。

文字化けでとても困っていましたが、このトピックのおかげで解決しました Surprised

皆様のおかげです。どうもありがとうございました!

_________________
http://fratdrive.net/

トップに戻る

ユーザーのプロフィールを表示 プライベートメッセージを送信 投稿者のウェブサイトに移動
新しいトピックを投稿 トピックに返信
特定期間内の記事を表示:   

Page 1 of 1

All times are GMT + 9 Hours

移動先:  

新規投稿: 不可
返信投稿: 不可
記事編集: 不可
記事削除: 不可
投票参加: 不可
ファイル添付不可
ダウンロード:

Powered by phpBB © 2001, 2002 phpBB Group