ダイアログ画面の文字コードNo.08955
石田 さん 19/04/08 21:14
 
秀丸でシフトJISしか使ったことが無い者です。ある小マクロを改変していて「 A →
 B 」というマクロの変換結果をダイアログ画面に表示したいのですが、シフトJISの
右矢印は →、⇒ 程度しか有りません。ユニコードだと、交通標識にあるような大ぶ
りの白抜きの U+21E8 が有り使ってみたいのですが、ダイアログ画面でシフトJISと
ユニコード文字が混在するのは不可能だろうと考えます。ただ A B とも第一水準漢
字やアラビア数字 0-9 なので可能かもしれないとも思ったりして考えが定まりませ
ん。A B に入る単語は秀丸編集画面から取ってきた単語が入ります。ただ、U+21E8
記号は同じ15ポイントでもMSゴシックとメイリオでは全く大きさが異なり、これも心
配の種です。マクロ文全体も UTF-8 にしないと記号も入力出来ませんし。
 
※ 無謀な挑戦はやめた方が良いでしょうか?

[ ]
RE:08955 ダイアログ画面の文字コードNo.08956
秀丸担当 さん 19/04/09 10:03
 

マクロは、マクロファイルをUnicodeで書かなくても、Unicode独自の文字を"\uXXXX"
の書き方で書くことができます。
例えばU+21E8の文字であれば、Shift-JISのマクロファイルで以下のような感じで書
きます。
message "A\u21E8B";
フォントによる文字の違いは、秀丸エディタとしては操作することはできないです。

[ ]
RE:08956 ダイアログ画面の文字コードNo.08961
石田 さん 19/04/09 20:05
 
一発で出来ました。

以前に、シフトJISでは表示出来ない常用漢字中にあるユニコード文字 四字を強調表示
するやり方
[\U00020b9f\u9830\u525d\u5861\u301c] を秀丸担当さんから教えてもらった事を、
思い出した次第です。

どうも有り難うございました。

[ ]
RE:08956 ダイアログ画面の文字コードNo.08962
でるもんたいいじま さん 19/04/09 22:15
 
こんにちは。秀丸愛用者の「でるもんた・いいじま」と申します。

> マクロは、マクロファイルをUnicodeで書かなくても、
> Unicode独自の文字を"\uXXXX"の書き方で書くことができます。
> 例えばU+21E8の文字であれば、Shift-JISのマクロファイルで
> 以下のような感じで書きます。
> message "A\u21E8B";

2つほど補足します。

1. \u のあとには必ず4桁を書く必要があります。
なので、たとえば U+1F449 を使いたい場合に
message "A\u1F449B";
と書くのはダメです。これは「全角のA、U+1F44(ギリシャ文字οの上に記号2つが
ついたもの)、半角数字の9、全角のB」という意味になります。また、
message "A\u{1F449}B";
もダメです。

この場合、次のどれかの方法で書く必要があります。
message "A\U0001F449B"; // Ver8.52以降。\Uの後は必ず8桁
message "A\uD83D\uDC49B"; // サロゲートペアを使った表示。
message "A" + unichar(0x1F449) + "B";
ちなみに、message sprintf("A%cB", 0x1F449); なんて書くとエラーになります。
(秀丸のsprintfは現状、%cをサポートしていません。)

なお、サロゲートペアについては自動的に合体してくれます。
essage sprintf("U+D83D U+DC49 -> U+%04X", unicode("\uD83D\uDC49"));



2.当該文字が手元で表示できる環境であれば、特にどこかから文章をコピペしてくる
ようであれば、マクロ自体をUnicodeで書いてしまうという手もあります。公式にサ
ポートされているのはUTF-16LEのBOMつきと、UTF-8のBOMつきですが、もしかしたら
実はUTF-16BEやUTF-32系でも通ってしまうかもしれません(実験はしていません)。

なお、UTF-8でBOMなしのものはShift_JISと誤認されます(マクロ起動時に編集中の
ファイルがどの言語であれ、Shift_JIS固定です)。日本語以外の言語で書きたい場
合にEUC系やISO 8859系のコードでマクロを保存してしまうと化けますのでご注意く
ださい。




ではでは。

[ ]
RE:08962 ダイアログ画面の文字コードNo.08969
石田 さん 19/04/11 00:07
 
詳しい説明、ありがとうございます。

「A → B」 矢印とA Bの間には半角スペースを入れてあり、今の所、誤動作は確認で
きてません。
今は、ザロケードペアとか、IVSとか派手な言葉が飛び交っていますが、
私が秀丸で利用している明朝フォントは JIS90字形、第一、第二水準漢字+記号
+外字なし という麗しい環境です。一点しんにょうの辻、魚+青の鯖江市、ネ+氏の
祇園まつり…等々を表示するフォントを有償購入して使っています(XP 時代の郷愁)
(全国の新聞社の大半が採用しているメーカのフォントなので信用して購入しました)

「AJ1-6 Pr6/Pr6N 23,058字収録」なんて高級な環境なら上記の機能は使えると思い
ますが、
フォント一本に二万円近いお金を払う勇気はありません。
漢字6300字程度収録のシフトJISでも日常の意思疎通は十分出来ると思います。

【余 談】:公益社団法人 京都市観光協会公式サイト説明文 転載
「※本文中の「祇園祭」の「ぎ」は、システム上のフォントの都合から「示」へんに
て表される場合がありますが、以前より「ネ」へんが使用されています。」
 
だそうです。

[ ]