ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Opened 12 years ago

Closed 12 years ago

#1793 closed defect (duplicate)

PCで入力したが、携帯側で表示出来ない文字列がある。「♥」とか。

Reported by: kunitada Owned by: nobody
Priority: minor Milestone: OpenPNE2.10.5
Component: pne-ktai Version: 2.8.x & 2.10.x & 2.11.x
Keywords: OpenPNE2.8.10 OpenPNE2.11.5 Cc:

Description (last modified by kunitada)

■現象

「♥」など、PCでは表示されるが、携帯(SJIS)に変換した際に、表示できない文字列がある。現状この場合、携帯では「空の文字列」に変換される。

たとえばこのような文字列だけの、メッセージタイトルなどあった場合、携帯からはリンクでジャンプすることができない。

■原因

utf8->sjisに変換する際に、変換出来なかったら「空の文字列」にしているからと思われる。mb_string系の関数の仕様だろう。

■修正内容

  • 1) 変換できなかったら、同じ文字数分「?」で変換する。そうすればリンクは表示される。
  • 2) 文字列を変換後「空の文字列」になった場合「?」に変換する。

のどちらかで対応したい。

「1)」が希望

■関連情報

http://sns.openpne.jp/?m=pc&a=page_fh_diary&target_c_diary_id=14930

Change History (9)

comment:1 Changed 12 years ago by kunitada

Description: modified (diff)

comment:2 Changed 12 years ago by yamaji

Owner: changed from nobody to yamaji
Status: newassigned

comment:3 Changed 12 years ago by kunitada

Summary: PCで入力したが、携帯側で表示出来ない文字列があるPCで入力したが、携帯側で表示出来ない文字列がある。「♥」とか。

comment:4 Changed 12 years ago by cake

mb_convert_encoding($str, 'SJIS-win', 'UTF-8'));

で、♡が空白に変換されることを確認しました(trimで削除される1バイトの空白になります)

webapp/lib/OpenPNE/Smarty.phpの以下の処理が該当します

function smarty_outputfilter_convert_utf82sjis($tpl_output, &$sma
rty)
{
    return mb_convert_encoding($tpl_output, 'SJIS-win', 'UTF-8');
}

表示する画面のテンプレート+データ情報全体を一括変換していて、特殊文字の空白コンバートを検出しないので、対策1) 2)とも難しそうです

1)のロジックの逆で、
「特殊文字変換後にmb_convert_encode」で解決できないでしょうか?

変換対応表は、以下のURLが参考になるかと思います。

http://memo.xight.org/2006-06-19-13

comment:5 Changed 12 years ago by ebihara

Keywords: OpenPNE2.8.9 OpenPNE2.11.5 added
Milestone: OpenPNE2.10.4

comment:6 Changed 12 years ago by ebihara

Keywords: OpenPNE2.8.9 OpenPNE2.11.5 removed
Milestone: OpenPNE2.10.4

comment:7 Changed 12 years ago by ogawa

Owner: changed from yamaji to nobody
Status: assignednew

comment:8 Changed 12 years ago by kiwa

Keywords: OpenPNE2.8.10 OpenPNE2.11.5 added
Milestone: OpenPNE2.10.5

comment:9 Changed 12 years ago by ebihara

Resolution: duplicate
Status: newclosed

#1906 にて対処済みです。

Note: See TracTickets for help on using tickets.