プロが教える店舗&オフィスのセキュリティ対策術

iMacのターミナルでUnicodeのU+1F382の絵文字を出力したいのですが、
やり方の分かる方教えてください。

質問者からの補足コメント

  • 以下のUR Lからコピペはできたのですが、
    https://topemojis.com/ja/birthday-cake-with-candle
    ターミナルで、
    $print(u"\U0001F382")

    $echo "\U0001F382"
    で絵文字を出せるようにするためには、
    シェルとしてどんな設定をすれば良いのでしょうか?

    No.1の回答に寄せられた補足コメントです。 補足日時:2022/06/23 10:13

A 回答 (2件)

その内容を、それぞれどのようにしましたか?



○UNIX/Linuxの慣例で、そのようなコマンドラインの例示の時は $ はプロンプトです。
実際には
PCNAME:~ USER$
等と自動で出力される部分です。
# 別のものに設定することができます。

実際に入力するは、 $ を除いたものになります。


○ $print(u"\U0001F382")

この書式は、bashのものではありません。
u"〜" の形なので、 PythonのVersion2のものだと思われます。
# Python3にも 残っているが、uが無くても同じ
これを実行するには、Pythonの対話モードに入力するか、スクリプトとして実行します。


○ echo "\U0001F382"

ターミナルで使用しているシェルを確認してください。

bashの場合、"〜"では \U を展開しません。
展開したい場合はシングルクオートの $'〜' を使います

https://linuxjm.osdn.jp/html/GNU_bash/man1/bash. …
> $'string' の形式を持つ単語は特殊な扱いを受けます。
> この単語は string に展開され、 それから ANSI C 標準で仕様が決められている、 バックスラッシュでエスケープされている文字に置き換えられます。
> バックスラッシュエスケープシーケンスは、 (もし存在すれば) 以下のようにデコードされます:

また、\Uに対応したのは、4.2以降です。
echo ${BASH_VERSION}
それより古い場合は使えません。
で確認しましょう。

HomeBrewやMacPorts等を使うか、自前でやるかして、新しいバージョンのbashをインストールする必要があります。

https://git.savannah.gnu.org/cgit/bash.git/tree/ …
>This document details the changes between this version, bash-4.2-alpha, and the previous version, bash-4.1-release.
> d. $'...', echo, and printf understand \uXXXX and \UXXXXXXXX escape sequences.
    • good
    • 0
この回答へのお礼

$はプロンプトという意味で書いています。
bashのバージョンは、5.1.16(1)-releaseのものを使っています。
$echo $'\U0001F382'
でうまく絵文字に変換できました。
ありがとうございます。

お礼日時:2022/06/23 21:28

「出力したい」の内容をもう少し具体的に説明してくれませんか?




通常通りに絵文字入力したり、コピー&ペーストできます。

「出力するプログラム」を作りたいのなら、そのプログラミング言語でprintとかechoとかの文字列出力コマンドを使います。

コードポイントから文字に変換する方法は、使用する言語等によって違うので、マニュアルで確認します。
https://manpages.debian.org/buster/manpages-ja/b …
> \UHHHHHHHH
> 16 進値が HHHHHHHH であるユニコード (ISO/IEC 10646) 文字 (16 進 1〜8 桁)。

echo "\U0001F382"
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!