長いタイトルの時などに「...」で省略されることがありますよね。
その時に全角だと文字化けすることがあります。当然日本語でも文字化けが発生する可能性があるわけです。
理由は簡単。全角文字は2バイトだからですよね。途中でぶった切られてしまうわけです。
ClipBucketでの省略方法はtruncateを使ってます。
「truncate:50」とやると50バイト?(調べてみると文字数とかキャラクタ数と書いてあった)でぶった切るわけです。
でもvideo.phpでされるページを見てみると文字化けしてないんですよね。トップページのindex.phpだと文字化けしてるのに。。。
答えを見つけました。
video.htmlの動画のタイトル表示するところを見てみると
{$videos[v_list].title|mb_truncate:20:"...":'UTF-8'}
となってるじゃないですか!!
これだ!!
index.htmlにも導入してみると文字化け解消!!!
mb_truncateはSmartyの機能らしいです。
なんで全部mb_truncateじゃないんだろう・・・。
なんか問題あるのかな???
ちょっと不安で全てのtruncateをmb_truncateに置き換えるのはやってません。
[追記]
ここも直さないと正常に動かないかも。。。
includes/functions.phpの中のTruncateIdiotText。
maxlen以上の文字列をnewlenの長さに変更する動作を行っています。
日本語だとこれでかなり削られてしまうし、文字化けも発生してしまう。
とりあえずUTF-8を指定しましょう。
mb_internal_encoding('UTF-8');
mb_regex_encoding('UTF-8');
を適当なところに置いてください。
これで文字化けなんかは解消できると思います。
ただmaxlenとnewlenの初期値が50と25だったと思うので、これだと日本語は25文字しか表示されません。適当な値に設定しなおしてください。
その時に全角だと文字化けすることがあります。当然日本語でも文字化けが発生する可能性があるわけです。
理由は簡単。全角文字は2バイトだからですよね。途中でぶった切られてしまうわけです。
ClipBucketでの省略方法はtruncateを使ってます。
「truncate:50」とやると50バイト?(調べてみると文字数とかキャラクタ数と書いてあった)でぶった切るわけです。
でもvideo.phpでされるページを見てみると文字化けしてないんですよね。トップページのindex.phpだと文字化けしてるのに。。。
答えを見つけました。
video.htmlの動画のタイトル表示するところを見てみると
{$videos[v_list].title|mb_truncate:20:"...":'UTF-8'}
となってるじゃないですか!!
これだ!!
index.htmlにも導入してみると文字化け解消!!!
mb_truncateはSmartyの機能らしいです。
なんで全部mb_truncateじゃないんだろう・・・。
なんか問題あるのかな???
ちょっと不安で全てのtruncateをmb_truncateに置き換えるのはやってません。
[追記]
ここも直さないと正常に動かないかも。。。
includes/functions.phpの中のTruncateIdiotText。
maxlen以上の文字列をnewlenの長さに変更する動作を行っています。
日本語だとこれでかなり削られてしまうし、文字化けも発生してしまう。
とりあえずUTF-8を指定しましょう。
mb_internal_encoding('UTF-8');
mb_regex_encoding('UTF-8');
を適当なところに置いてください。
これで文字化けなんかは解消できると思います。
ただmaxlenとnewlenの初期値が50と25だったと思うので、これだと日本語は25文字しか表示されません。適当な値に設定しなおしてください。


