DTPオペレーターのInDesign、Javascript関連セーブデータ。ただいま過去記事の整理中のため、記事が突然消えたり現れたり、記事の内容が微妙に変わったりします。最近は主にTwitter(@subi_omu)で活動。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
サロゲートペア文字その1 サロゲートペア文字とは
ここの話題
「InDesignでデータ結合をするときに、特定の文字やそれ以降の文章が消える」
という現象からわかったことと対策です。

最初に話題になった、その特定の文字が「𠩤」(原の点がない)や「𠮷」(つちよし、土の下に口)だったので、最初は異体字の問題かと思っていましたが、どうやら「サロゲートペア文字」をデータ結合では扱えないというのが真相のようです。

キャプチャ08091611


サロゲートペア文字とは?
Unicodeについて
テキストエディタ「Maxy」の作者しまたろさんが大変わかりやすくまとめていらっしゃるので、ここを読んでいただければいいかと。ネット上で一番分かりやすい文字コードの解説です。
非常にためになるのでDTPに係わる人は目を通しておいた方がいいよ。

あとで読もうとしてる人のためにざっくり説明すると…
文字コード(「この文字はこの数値で表す」という取り決め)がASCII、Shift-JISなど乱立
→すべての言語の文字を含んだユニコードを作ろう
→16ビット(2の16乗=65536通り)で表そうとしたら足りない
→ここまでが前提。

(以下しまたろさんの文章より)
実は、Unicode 1.0でも65536通りの全てに文字を割り当ててたわけじゃなくて、ところどころ空きがあったりする。 その中に、D800H~DFFFHという2048文字分の空き領域がある。 そして「この範囲の文字が出てきたらちょっと特殊なことをしよう」と考えた。 どう特殊かというと、「前半1024文字(D800H~DBFFH)のどれかが出てきたら、その次には必ず後半1024文字(DC00H~DFFFH)のどれかを出すようにしよう!これで表せる文字が100万文字(1024x1024=1048576)くらい増えた!」というわけ。 で、この「2つで1文字を表す」ペアのことをサロゲートペアと呼ぶことにしましたとさ。

これでUnicodeで表せる文字範囲はU+0000~U+10FFFFまで広がった。 16ビットで表せる範囲内の文字(U+0000~U+FFFF)は「基本多言語面(BMP)」、残りの100万文字余り(U+010000~U+10FFFF)は「追加多言語面(SMP)」として区別することにしたそうな。

サロゲートペア文字はこういう経緯で作られたちょっと特殊な扱いの文字というわけです。ユニコードのコードポイント(符号位置)でいうとU+010000~U+10FFFFになります。
ユニコードのエンコード方式がUTF-8とかUTF-16とかありますが、このへんもしまたろさんの文章を読んでください。

実際どういう場面でサリゲートペア文字に出くわすかというと、圧倒的に人名か地名です。
それ以外だと、絵文字は実はサロゲートペア文字です。これはGoogleのNoto Emoji。Gmailを使う人にはおなじみですね。カラーフォントのNoto Color EmojiはDTPソフトでは使えませんでした。

キャプチャ07271730

字形パネルのUnicodeコードポイントを見るとこの絵文字はU+01F603ですから、サロゲートペア文字(U+010000~U+10FFFF)と分かります。

ちなみに絵文字フォントはWindow 8以降にはSegoe Ul Symbolがインストールされていますが、Noto Emojiに比べてどうにもクオリティが低い。日本文化を知らない人が作ってるのだろうけれど、もうちょっとどうにかならないものでしょうか。

キャプチャ07271731 

実際のDTPの仕事でサロゲートペア文字がテキスト原稿にあったとしても、テキストファイルやWordからInDesignに配置やコピペは問題なくできます。InDesignのマイナーな機能は、「北米の開発環境で簡単に試して動いた」くらいのクオリティのものが少なくありません。日本語のようなマイナー言語と組み合わせて動作するかなんてたぶん開発時にテストしてないんでしょう。

じゃあ、もしサロゲートペア文字がデータ結合したいテキストに入ってたらどうする?ということは別記事で。
関連記事
スポンサーサイト
コメント
コメント
コメントの投稿
URL:
本文:
パスワード:
非公開コメント: 管理者にだけ表示を許可する
 
トラックバック
トラックバック URL
トラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。