User:
Pass:
Keep:   
Xoops Cube Project
XOOPS Cube Project Site
Powered by Google


Powered by XOOPS Cube Legacy 2.1.8
PukiWikiMod 1.5.1
WordPress Module 0.6.0 Alpha
カレンダー表示の文字化け 投稿者: gsx 投稿日:2004/06/07(Mon) 13:58 No.153  
これは、自分の環境だけの問題のような気がするのですが、
カレンダーの「日 月 火 水 木 金 土 」が
「・/th> 五/th> ・/th> 折/th> ・/th> ・/th> 曇/th> 」
のように文字化けすることがあります。
原因に心当たりがありましたら教えて下さい。


Re:カレンダー表示の文字化け 投稿者: のぶのぶ 投稿日:2004/06/08(Tue) 03:45 No.157  

> カレンダーの「日 月 火 水 木 金 土 」が
> 「・/th> 五/th> ・/th> 折/th> ・/th> ・/th> 曇/th> 」
> のように文字化けすることがあります。
> 原因に心当たりがありましたら教えて下さい。
今のところ、原因で思い当たるものがありませんが、
「文字化けすることがあります」という事は、常に文字化けするわけでは無い
って言う事なんでしょうか?


Re:カレンダー表示の文字化け 投稿者: gsx 投稿日:2004/06/08(Tue) 08:24 No.160  

返答ありがとうございます。

文字化けですが、数回に一回くらいの割合で発生します。

こちらで少し調査してみたところ、
mb_internal_encoding() で内部文字エンコーディングの取得すると
"EUC-JP" が返る時と、"SJIS" が返る時がありました。
文字化けするときは "SJIS" の時です。
(なぜコロコロと変わるかは詳しくないのでわかりません・・・。
HTTPサーバの設定?)

以前は出なかった現象なので、古いソースと比べると
mb_internal_encoding("euc-jp") がコメントになっているようですので
この辺りの影響でしょうか?

調査している時に気づいたのですが XOOPS に xoops_substr() と言う
関数があるようですので、mb_substr() をこれに入れ替えれば
OK でしょうか・・・


Re:カレンダー表示の文字化け 投稿者: dashkick 投稿日:2004/06/08(Tue) 11:59 No.161  

相乗りで、質問させてください。

僕のカレンダーは、曜日がすべて?マークになっています。
どこか設定がおかしいのでしょうか?


Re:カレンダー表示の文字化け 投稿者: のぶのぶ 投稿日:2004/06/08(Tue) 13:54 No.164  

> こちらで少し調査してみたところ、
> mb_internal_encoding() で内部文字エンコーディングの取得すると
> "EUC-JP" が返る時と、"SJIS" が返る時がありました。

> 以前は出なかった現象なので、古いソースと比べると
> mb_internal_encoding("euc-jp") がコメントになっているようですので
> この辺りの影響でしょうか?

この部分に関しては、XOOPSの日本語環境がEUC-JPで動作しているはずだという前提のもと、もともとのWordPressMEには有ったのですがコメントアウトしました。
国際化対応する上では余分になってしまいますので・・・
でも、もし動作が不安定ならこのコメントを元に戻していただいても他への
悪影響は無いと思います。
なんでSJISになる場合があるのかは不明ですけど・・・

> XOOPS に xoops_substr() と言う関数があるようですので、
> mb_substr() をこれに入れ替えればOK でしょうか・・・
xoops_substrは、内部でmb_strimwidthという関数を呼んでいるようでが、
これは文字列を文字幅(SJISでのバイト数と同じ)で切り捨てる関数です。
カレンダの曜日表示においては、
日本語では「月曜日」→「月」
英語では「Monday」→「M」
と最初の論理的な一文字目を切り出したいため、mb_substr関数を使っています。
xoops_substrで切り出すとすれば、日本語の場合は2桁、英語の場合は1桁と
違うパラメータで呼んでやらないと上記のような切り出しは出来なくなります。


Re:カレンダー表示の文字化け 投稿者: のぶのぶ 投稿日:2004/06/08(Tue) 14:07 No.165  

dashkickさんようこそ!
> 僕のカレンダーは、曜日がすべて?マークになっています。
> どこか設定がおかしいのでしょうか
あらら、何ででしょうね?
もしかしてdashkickさんの環境のPHPにはmb_stringエクステンションが
導入されていないとかってことは無いですよね?


Re:カレンダー表示の文字化け 投稿者: gsx 投稿日:2004/06/10(Thu) 04:35 No.174  

> xoops_substrは、内部でmb_strimwidthという関数を呼んでいるようでが、

すみません、そうですね・・・
mb_internal_encoding() と mb_substr() を読んでいるだけの関数かと勝手に考えていました。
mb_internal_encoding("euc-jp") を使用するようにします。


NO: PASS:

このプログラムは KENT 氏の yybbs を xoops(PHP) に移植したものです
- KENT -