Nucleus(JP)フォーラム

NucleusCMS日本語版ユーザーのためのサポートフォーラムです。疑問が生じたらまずは記事検索をご利用ください。

ログインしていません。

#1 2005-02-10 16:45:46

yonemo
ゲストユーザー

Re: 日本語部分でソースが切れます

Nucleus バージョン3.1 日本語版を使用中です。
アイテムの作成・テンプレート・スキンのソース内に日本語を入力して
サブミットすると、日本語部分以降のソースが切れて登録されており
正しく登録されません。

いろいろネット上を調べているのですが、これに関する情報がまったく
見つからず困っております。

何か心当たりのある方、お気軽にご教示ください。

#2 2005-02-10 19:31:26

yu
メンバー
From: 神奈川
登録日: 2003-11-15
投稿: 718
ウェブサイト

Re: 日本語部分でソースが切れます

yonemo さんの発言:

Nucleus バージョン3.1 日本語版を使用中です。
アイテムの作成・テンプレート・スキンのソース内に日本語を入力して
サブミットすると、日本語部分以降のソースが切れて登録されており
正しく登録されません。

いろいろネット上を調べているのですが、これに関する情報がまったく
見つからず困っております。

何か心当たりのある方、お気軽にご教示ください。

残念ながら心当たりはないのですが、
もう少し情報があったほうが他の人が答えやすくなるかもしれません。

Macか、Windowsか
ブラウザの種類
サーバーの環境など

#ちなみにMacの場合ブラウザはFirefox以外は厳しかったような・・


Nucleusだとか
http://nucleus.datoka.jp/

オフライン

#3 2005-02-16 11:20:57

yonemo
ゲストユーザー

Re: 日本語部分でソースが切れます

情報が少なくて申し訳ありません。詳細を書きます。

日本語と言うよりも全角文字を取り込まないようです。
全角スペースをソースの中に入れるとその手前でソースが切れてしまい
それ以降がとりこまれません。
管理ページなどのボタン等はすべて日本語表記になっています。
OS:Win  ブラウザ:IE6.0

#4 2005-02-16 23:47:00

kitsune.info
メンバー
From: 河内國
登録日: 2004-07-29
投稿: 261
ウェブサイト

Re: 日本語部分でソースが切れます

実際に問題が起きた箇所を、支障がない範囲でコピーして出していただくのが比較的早道かと思います。
# 必ずしもそれで解決できるとは言えませんが。

あと、サーバの環境をもう少し知りたいです。
phpinfo() で、サーバの OS(UNIX系か Windows系か)と mbstring が入っているか(入っているならどういう値が設定されているか)も関係しそうです。


kitsune.info -- from The United Native Comedians of Osaka

オフライン

#5 2005-02-17 10:52:52

yonemo
ゲストユーザー

Re: 日本語部分でソースが切れます

お助けいただき、ありがとうございます。
サーバ情報は以下となります。

OS: FreeBSD 4.1.0
PHP:4.3.8
MySQL:4.1.7

####mbstring

Multibyte Support                   enabled 
Japanese support                    enabled 
Simplified chinese support          enabled 
Traditional chinese support         enabled 
Korean support                      enabled 
Russian support                     enabled 
Multibyte (japanese) regex support  enabled 

mbstring extension makes use of "streamable kanji code filter and converter",
which is distributed under the GNU Lesser General Public License version 2.1.

Directive Local Value Master Value
mbstring.detect_order no value no value
mbstring.encoding_translation Off Off
mbstring.func_overload 0 0
mbstring.http_input pass pass
mbstring.http_output pass pass
mbstring.internal_encoding no value no value
mbstring.language neutral neutral
mbstring.substitute_character no value no value


画面を添付させていただきます。


Attachments:
jpg 4.jpg, Size: 29.54 KiB, Downloads: 16,722
jpg 3.jpg, Size: 23.42 KiB, Downloads: 16,717
jpg 1.jpg, Size: 37.31 KiB, Downloads: 16,727

#6 2005-02-17 11:45:14

藤咲
Administrator
From: 広島
登録日: 2003-11-17
投稿: 1,211
ウェブサイト

Re: 日本語部分でソースが切れます

この辺が参考になるのかもしれません。
http://www.seshop.com/book/qa/Default.a ... &pageno=58


藤咲
備忘録とかもろもろ
http://fjsk.tk/

オフライン

#7 2005-02-17 15:23:19

yonemo
ゲストユーザー

Re: 日本語部分でソースが切れます

かなり有力な情報だと思います。
さっそく詳しく読んでみたいと思います。
ありがとうございます。

#8 2005-02-18 19:25:07

yonemo
ゲストユーザー

Re: 日本語部分でソースが切れます

藤咲様に教えていただいたサイトを参考に設定を確認しましたが
設定的にも問題なく、解決できませんでした。

また、解決策を思いついた方、すみませんがお助けください。
こちらの方でも、Nucleusの再インストールなど試してみます。

#9 2005-02-18 19:53:58

kitsune.info
メンバー
From: 河内國
登録日: 2004-07-29
投稿: 261
ウェブサイト

Re: 日本語部分でソースが切れます

yonemo さんの発言:

設定的にも問題なく、解決できませんでした。

mbstring.http_output の値など、かなり違うのですが。

まず、mbstring 関係の値は .htaccess で調整します。
mbstring.http_output を例に挙げると、以下のように書きます(UTF-8の場合)。

php_value mbstring.http_output UTF-8

藤咲さんが書かれた参考ページは Shift_JIS で運用する前提の設定ですから、このまま Nucleus に適用するのはまずいです(Nucleus には UTF-8 と EUC-JP のバージョンしかありません)。
まずは上記を理解した上で設定されたのか確認させてください。

あと、お使いの Nucleus が UTF-8 と EUC-JP のどちらかも書いていただけますか。

=====
mbstring の設定であやしいのは、internal_encoding くらいかなあ。
管理画面の日本語はちゃんと出力されているので、プログラムが文字列を処理する時にエンコードが変わっちゃってるような気がします。

もしも phpMyAdmin がインストール済みならば、書いたはずの日本語がちゃんとデータベースに入っているか直接確認されるのがよいでしょう。
phpMyAdmin の最初のページで文字コードを Nucleus に合わせてからデータベースの中を見ます。
ここで文字化けして入っているようなら、たぶん PHP の internal_encoding か http_input が原因です。

# これを確かめるのが結果的に早そうですが、phpMyAdmin のインストールがけっこう手間に感じられるかも知れないので、できそうならやってみてくださいという感じ。


kitsune.info -- from The United Native Comedians of Osaka

オフライン

#10 2005-02-19 18:55:50

hsur
メンバー
From: 東京都
登録日: 2004-05-03
投稿: 230
ウェブサイト

Re: 日本語部分でソースが切れます

yonemo さんの発言:

OS: FreeBSD 4.1.0
PHP:4.3.8
MySQL:4.1.7

このMySQLのバージョンがちょっと気になりますね。
PHPの問題というよりもMySQLの問題かもしれません。

4.1系は文字コードの扱いが変わったので、クライアントの文字コードとDBの文字コードが
きちんと合っていないと、文字化けしたり、日本語文字列がうまく入らなかったような気がします。

# 私のところでこの症状が出たときには、MySQLはエラーを返さないので、
# 一見正常に処理されたように見えて、データをselectしてみると実はちゃんと保存されていない
# という状況になってはまりました。今回の症状は比較的これに近いかなと思います。

僕自身がNucleusでこの問題に対応したときには
「(インストールフォルダ)/nucleus/libs/globalfunctions.php」の

/**
  * Connects to mysql server
  */
function sql_connect() {
        global $MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD, $MYSQL_DATABASE;

        $connection = @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');
        return $connection;
}

この部分を

/**
  * Connects to mysql server
  */
function sql_connect() {
        global $MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD, $MYSQL_DATABASE;

        $connection = @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 $connection;
}

のように書き換えて対応したことがあります。

※「mysql_query("SET NAMES utf8");」の部分を追加。
  EUC-JPの場合はutf8をujisにする必要があります。

nucleusのcoreの書き換えになってしまうので、自己責任でお願いしますという無責任な
言い方になってしまいますが、試してみる価値はあると思います。
# すいませんうろ覚えなので、これ以外にも何か必要なことがあったかもしれません。

# あと、4.1.7には日本語の扱いにバグがあって、記号(機種依存文字?)を入れようとすると、
# そこで文字列が切れたりするバグもありましたね。
# http://blog.cles.jp/item/578

オフライン

#11 2005-02-28 21:02:58

yonemo
ゲストユーザー

Re: 日本語部分でソースが切れます

いろいろ、参考になる意見ありがとうございました。
どうもMySQLのバージョンの関係でおかしくなっていたようです。
バージョン3を入れなおしたら、正常になりました。

また一つ勉強になりました。ありがとございます。

Board footer