原文(日本語に翻訳)
「N文字コピーしました」というトーストメッセージが、絵文字やその他のマルチコードユニット文字を過大計上する問題を修正しました。
原文(英語)
Fixed the "copied N chars" toast overcounting emoji and other multi-code-unit characters
概要
テキストをコピーした際に表示される「N文字コピーしました(copied N chars)」というトースト通知で、絵文字や一部の特殊文字(サロゲートペア文字)を含むテキストの文字数が実際よりも多く表示されていました。これはJavaScriptの文字列処理でサロゲートペアを2文字としてカウントしていたためです。今回の修正でUnicodeコードポイント単位の正確なカウントが行われるようになります。
基本的な使い方
# テキストをコピーする場面
# Claude の回答: "Hello! 👋 World! 🌍"
# 修正前のトースト表示:
# "copied 20 chars" (絵文字がそれぞれ2文字としてカウントされていた)
# 修正後のトースト表示:
# "copied 18 chars" (絵文字が1文字としてカウントされる)実践例
絵文字を含む回答のコピー
# Claude の回答例
「実装が完了しました! 🎉
主な変更点:
✅ ユーザー認証の追加
✅ データベース接続の最適化
🔧 バグ修正 3件
📝 ドキュメントの更新」
# このテキストをコピーした場合:
# 修正前: 実際より多い文字数が表示される(絵文字ごとに+1)
# 修正後: Unicode コードポイント基準の正確な文字数が表示されるサロゲートペアを含む特殊文字
javascript
// サロゲートペアが必要な文字の例(Unicodeコードポイントが U+10000 以上)
const examples = [
"𠮷" (U+20BB7 CJK統合漢字拡張B)
"🍣" (U+1F363 寿司絵文字)
"🏳️🌈" (虹旗 - ZWJシーケンス)
"👨👩👧👦" (家族絵文字 - 複合絵文字)
];
// 修正前: 各文字が2以上としてカウント
// 修正後: 人間が認識する「1文字」として正確にカウント日本語テキストでの影響
# 日本語の通常文字(U+0000〜U+FFFF)は影響なし
# 例: 「こんにちは」→ 5文字(修正前後で変わらず)
# 絵文字や特殊記号を含む場合に修正が効果的
「おはようございます!☀️ 今日も頑張りましょう💪」
# 修正前: ☀️ と 💪 がそれぞれ追加でカウントされていた
# 修正後: 正確な文字数が表示されるコピー機能の使い方
# テキストをコピーする方法
1. Claude の回答が表示された後
2. /copy と入力(または該当のショートカットキー)
3. コピーしたいテキストを選択
4. 画面右下にトースト通知が表示される
# 修正後は「copied N chars」の N が正確になる注意点
- この修正はトースト通知に表示される文字数の問題です。コピーされるテキスト内容自体に変化はありません
- ZWJ(Zero-Width Joiner)シーケンスで構成される複合絵文字(家族絵文字など)のカウント方法はプラットフォームによって異なる場合があります
- バリエーションセレクタ(VS-16など)を含む絵文字も適切に処理されます
- 修正後の文字数は、多くのテキストエディタやWebブラウザで表示される文字数と一致します
- 実際のコピー内容(クリップボードのデータ)には影響しません