Redmine 「プロジェクト名」設定時のバグ(字数制限?)

224 views
Skip to first unread message

mooo

unread,
May 26, 2008, 3:42:25 AM5/26/08
to Redmine Users (japanese)
Redmineで新しいプロジェクトを作成する際に、例えば先頭から日本語のみを入力した場合、
20バイトを超える分は単純に truncate される。

また、先頭からアルファベットを入力した場合、
28文字入力し最後に日本語全角1文字追加する(=32バイト、最大入力値30を越える)と、
最後の日本語全角1文字分は「�」と表示される(長すぎる、等のメッセージは表示されない)。

アルファベットのみ入力する場合は30バイトまで正常に入力でき、
30文字を超過した場合には「文字数が多すぎる」旨のメッセージが出力される。

サーバ環境:
Fedora 8
MySQL Ver 14.12 Distrib 5.0.45
ruby 1.8.6-p114
rails 2.0.2
mongrel-1.1.3
redmine 0.7.1

(例)プロジェクト名に下記のものを入れた場合
AABBCCDDEEFFGGHHIIJJKKLLMMNN(28文字)+あ(全角1文字) = 「あ」の部分が�(文字化け)
あいうえおかきくけこさしすせそ ⇒ あいうえおかきくけこ (「さしすせそ」がなくなる)

特に大きな問題ではないのですが、改善策はないでしょうか?

尚、Redmine,MySQL,Apacheなどの設定はUTF-8を使用しており、
「プロジェクト名」以外は文字化けが発生したことはないです。

よろしくお願いします。

fmkt

unread,
May 26, 2008, 7:57:08 PM5/26/08
to Redmine Users (japanese)
こんにちは。

そちらとほぼ同じ環境(OSだけCentOS5.1)で試していますが、
こちらでは文字化けなどおこらず表示されています。

mysql のredmineのデータベースにloginして status コマンドを
打つと以下のような状態になるか確認していただけますか?


--------------
mysql Ver 14.12 Distrib 5.0.45, for pc-linux-gnu (i686) using
readline 5.0

Connection id: 12306
Current database: redmine
Current user: ほげ@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.0.45-community-log MySQL Community Edition
(GPL)
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 47 days 10 hours 37 min 39 sec
--------------

もし characterset のところが latin1 などになってると
正常に文字数カウントが出来ない場合があります。

では。

mooo

unread,
May 26, 2008, 8:45:04 PM5/26/08
to Redmine Users (japanese)
返信ありがとうございます。

早速、mysqlのredmineのデータベースで
statusコマンドを打ったのですが下記のようになりました。
--------------
mysql Ver 14.12 Distrib 5.0.45, for redhat-linux-gnu (i386) using
readline 5.0

Connection id: 9
Current database: redmine
Current user: hoge@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.0.45 Source distribution
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 5 days 20 hours 42 min 4 sec
--------------

比較してみたのですが、すべてutf8にしてました。
他の文字コード設定も確認してみます。

fmkt

unread,
May 26, 2008, 9:06:34 PM5/26/08
to Redmine Users (japanese)
うーん・・・原因はなんだろう?

config/environment.rb に $KCODE='u' を入れてみるとか...?

mooo

unread,
May 27, 2008, 2:36:06 AM5/27/08
to Redmine Users (japanese)
> config/environment.rb に $KCODE='u' を入れてみるとか...?
試してみたのですが、やはり文字化けしました。

UTF-8に関わりそうなSQLの設定ファイルとapacheの設定ファイルは下記のようになってます。

</etc/my.cnf>
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql
3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
default-character-set = utf8

[mysql]
default-character-set = utf8

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

<httpd.conf>
#AddDefaultCharset UTF-8  ←コメントアウトしているのですが、外しても文字化けは起きました。

もともと作成しようとしたプロジェクト名は「abcd製品管理プロジェクト」(少しデフォルメしてますが)が「abcd製品管理プロジェ��」
と表示されたことで気が付きました。

fmktさんは問題なく表示されているとのことですので、
Redmineのバグではなく、こちらのRedmineの設定が原因のようですね。

fmkt

unread,
May 27, 2008, 2:41:13 AM5/27/08
to Redmine Users (japanese)
こんにちは。

私の環境では、my.cnf の設定に default-character-set = utf8 と一緒に
以下の設定もしています。

[mysqld]
...
default-character-set = utf8
skip-character-set-client-handshake
...

では。

mooo

unread,
May 27, 2008, 5:35:36 AM5/27/08
to Redmine Users (japanese)
ご指摘いただいた件で解決致しました。
ありがとうございます。

下記のように変更しました。

</etc/my.cnf>
[mysqld]
default-character-set = utf8
skip-character-set-client-handshake ←追加
[mysql]
default-character-set = utf8
skip-character-set-client-handshake ←追加

ところがこれによりタイトルにある「プロジェクト名」の文字化けは解決したのですが、
この設定の変更により2つ問題が発生しました。
1.今まで入力してきた日本語の文字(プロジェクト名やユーザ名など)がすべて文字化け
2.新しいプロジェクト作成内の「トラッカー」の「バグ・機能・サポート…」が文字化け、など局所で文字化け

1.は再度入力し直しが必要みたいです。
2はさらにどこかの文字コードの設定見直しがいるようです。

とりあえずタイトルにある問題の原因は判明しましたので、ありがとうございました。

fmkt

unread,
May 27, 2008, 5:40:53 AM5/27/08
to Redmine Users (japanese)
うまくいけたようで、よかったです。
ただ既存の箇所に問題が出たみたいで...
config/database.yml の設定を以下のように
encoding の設定を追加されてみては如何でしょうか?

production:
adapter: mysql
database: redmine
host: localhost
username: hoge
password:
socket: /var/lib/mysql/mysql.sock
encoding: utf8

これでうまく動くといいなあ...

では。

mooo

unread,
May 29, 2008, 3:23:07 AM5/29/08
to Redmine Users (japanese)
残念ながらうまくいきませんでした。

それで試しに最初から構築し直してみたのですが、
</etc/my.cnf> にskip-character-set-client-handshake を追加して
redmineのインストールを行ったところ文字化けは全く起きませんでした。

あとひとつ気になったのが[管理]-[情報]で見ると、バージョンの表示が違うみたいです。

新)Redmine 0.7.1 (MySQL)
(tar.gzファイルをダウンロード&インストール)

旧)Redmine 0.7.devel.1472 (MySQL)
(svn updateで0.6.3→0.7.1に上げました)

どうも表示される項目も違うようなのでこのバージョンの違いが原因のようです。

このバージョンの違いは何なのでしょうか。
Reply all
Reply to author
Forward
0 new messages