Cocoonフォーラム

サイト内検索
書き込みの前に以下の3点をご確認ください。
  1. 1つのトピックにつき1つの質問を書き込んでください
  2. 不具合・カスタマイズ対象ページのURLを提示高速化を無効にしてください
  3. 該当部分のキャプチャ・環境情報とともに書き込んでいただけると助かります

何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。

不具合・カスタマイズ対象ページのURL:

相談内容:

不具合の発生手順:

解決のために試したこと:

※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:

※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。

環境情報の取得方法はこちら。
https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
https://wp-cocoon.com/theme-trouble/

フォーラム利用ガイドリンク

  1. フォーラムガイドライン
  2. よくある質問と答え(FAQ)
  3. サポート対象外のケース
  4. 原因不明の不具合用トラブルシューティング
  5. トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw
  6. 真っ白画面でのエラーメッセージの確認方法
  7. ブラウザ環境チェックツール
  8. Cocoonカスタマイズ依頼

フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。

外部ブログカードのタイトル、スニペット...
 
共有:
通知
すべてクリア

[解決済] 外部ブログカードのタイトル、スニペットが文字化けする

11 投稿
4 ユーザー
8 Reactions
791 表示
chu-ya
(@chu-ya)
Famed Member Registered
結合: 2年前
投稿: 2669
Topic starter  

----------------------------------------------
テーマ名:Cocoon
バージョン:2.7.1.1
カテゴリー数:19
タグ数:151
ユーザー数:1
----------------------------------------------

●現象
以下のURLをブログカードにした。
タイトル、スニペットが文字化けする。
https://blog-and-destroy.com/5409


●原因
サイトのタイトル、スニペットがUTF-8となっている?
($ogpの値が文字化けしていた。)


●対策

例として、文字コードをチェックし、必要なら変換し代入する。

https://github.com/xserver-inc/cocoon/blob/46ed8adcaa1bc17ed03199da615b2b05a741b138/lib/blogcard-out.php#L192

$title = $ogp->title;//タイトルの取得
$title_check  = utf8_decode($title);
if(mb_detect_encoding($title_check ) == 'UTF-8'){
  $title = $title_check;
 }

   
わいひら reacted
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 16988
 

ご連絡いただきありがとうございます。
原因に心当たりがあったので、以前修正した箇所を元に戻してみました。
https://github.com/xserver-inc/cocoon/commit/cabd50a154eaed6bf6ccaa9067b4d770ff2f3736

ただWordPress 8.2以降はmb_convert_encodingの第2引数で'HTML-ENTITIES'を使用すると、以下のように非推奨で怒られてしまうんですよね。

mb_convert_encoding(): Handling HTML entities via mbstring is deprecated; use htmlspecialchars, htmlentities, or mb_encode_numericentity/mb_decode_numericentity instead wp-content/themes/cocoon-master/lib/open-graph.php:124

どのように修正するのが正解なんだろう。


   
(@akira)
Famed Member Registered
結合: 7年前
投稿: 1657
 

Symfony は、このように変更したみたいです。

$HTML = mb_encode_numericentity($HTML, [0x80, 0x10FFFF, 0, 0x1FFFFF], 'UTF-8');

参考:HTML-ENTITIES

試してみたら上手くいきました。


   
わいひら reacted
chu-ya
(@chu-ya)
Famed Member Registered
結合: 2年前
投稿: 2669
Topic starter  

----------------------------------------------
テーマ名:Cocoon
バージョン:2.7.1.2
カテゴリー数:11
タグ数:11
ユーザー数:1
----------------------------------------------
修正されている事を確認しました。
Akiraさんの修正案が提示されていますが、一旦、本件をクローズとします。


   
わいひら reacted
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 16988
 

投稿者:: @akira

Symfony は、このように変更したみたいです。

ありがとうございます!
僕も以前それは試してみたんですけど、シフトJISページとかだと文字化けしちゃうんですよね。。
http://abehiroshi.la.coocan.jp/
なんかうまい方法はないものか。


   
(@akira)
Famed Member Registered
結合: 7年前
投稿: 1657
 

30 分格闘してみた結果です。改善の余地があるように思えますが、一応表示できました。

if(mb_detect_encoding($HTML) !== 'UTF-8') {
  $encodings = ['ASCII', 'JIS', 'EUC-JP', 'SJIS'];
  $HTML = mb_convert_encoding($HTML, 'UTF-8', mb_detect_encoding($HTML, $encodings, true));
}
$HTML = mb_encode_numericentity($HTML, [0x80, 0x10FFFF, 0, 0x1FFFFF], 'UTF-8');

Shift_JIS はやめてくれ…。あと chu-ya さんがご指摘のサイトは、<meta charset="UTF-8"> の位置がおかしい。

This post was modified 7か月前 2回 by Akira

   
わいひら and chu-ya reacted
(@akira)
Famed Member Registered
結合: 7年前
投稿: 1657
 

mb_convert_encoding() の第3引数に自分で mb_detect_encoding() を書く必要はなかったです。こちらでも表示できました。

if(mb_detect_encoding($HTML) !== 'UTF-8') {
  $HTML = mb_convert_encoding($HTML, 'UTF-8', 'ASCII, JIS, EUC-JP, SJIS');
}
$HTML = mb_encode_numericentity($HTML, [0x80, 0x10FFFF, 0, 0x1FFFFF], 'UTF-8');

   
わいひら reacted
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 16988
 

ありがとうございます。
僕の環境でも文字のエンコード処理が問題なくできるようになりました。
処理を適用しておきました。
https://github.com/xserver-inc/cocoon/commit/6e8da0509fbb7864f111a9c55c350f58c6208329

This post was modified 7か月前 by わいひら

   
(@satoru0315)
New Member Registered
結合: 7か月前
投稿: 2
 

@yhira 

横入り質問すいません(T_T)
最近始めたばかりの初心者です。

自分も外部のURLが文字化けしてまして、ここや過去のお問い合わせなどを参考に直したつもりですが、
文字化けが直りません……。

もしかしたら、UTF-16ってやつなのかな…とかまでは調べてぼんやりと思ったのですが、
コードの訂正の仕方が分かりませんでした。

分かりやすく教えていただけたら幸いです。

いつも利用させていただきまして、ありがとうございます。
よろしくお願いいたします。

************************************

親テーマ:cocoon 2.7.1.8

子テーマ:cocoon child 1.1.3  ←有効化

文字化けしているページ: https://oekaki-seichoutsu.blog/link/

************************************


   
chu-ya
(@chu-ya)
Famed Member Registered
結合: 2年前
投稿: 2669
Topic starter  

@satoru0315 さん

●確認

----------------------------------------------
テーマ名:Cocoon
バージョン:2.7.1.7
カテゴリー数:19
タグ数:151
ユーザー数:1
----------------------------------------------

一つ前のバージョンですが、図示の通り、該当のサイト、問題なく表示されます。

[Cocoon設定]→[キャッシュ削除]→全てのキャシュの削除

その後、ブラウザをリロードして確認願いたく。


   
わいひら reacted
(@satoru0315)
New Member Registered
結合: 7か月前
投稿: 2
 

@chu-ya 

直りました!!!!

本当にありがとうございました(´;ω;`)

 


   
わいひら reacted
共有:

問題の解決に至った場合には、トピック冒頭の「解決済み」をクリックしていただけますと幸いです。

また、有用な回答があった場合は返信右下にある「いいね!」もご活用ください。回答者の励みになります。

「いいね!」機能はフォーラム登録者のみが利用できる機能です。

CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。

フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。

最近の書き込みはこちら。

詳細なカスタマイズ依頼をするならこちら。

タイトルとURLをコピーしました