字體設計與文字編碼 Computer Typography and Character Encoding

作業 01

若該次作業有程式碼,請放在 https://github.com/你的帳號/ct2023s/hw01/src/ 檔案夾。
總分 完成後打勾 配分 分項描述
2 作業 a
2 作業 b
2 作業 c
2 作業 d
2 作業 e
心得報告 105 字。心得報告 105 字。心得報告 105 字。心得報告 105 字。心得報告 105 字。心得報告 105 字。心得報告 105 字。心得報告 105 字。心得報告 105 字。心得報告 105 字。心得報告 105 字。心得報告 105 字。心得報告 105 字。心得報告 105 字。心得報告 105 字。

「全瀨體」

  • 原文出處: cjkfonts 全瀨體 https://cjkfonts.io/blog/cjkfonts_allseto
  • 全瀨體,基於瀨戶字體,透過深度學習智能造字,產生的字體數量是跟思源黑體相同。
  • 瀨戶字體,原作者將此字體用 SIL Open Font License 授權方法,可以商業使用,可以容許修改字體。

「FiraCode」

「時刻表っぽいフォント — DiaPro」

(a) Unicode 輸入法練習

UTF-8 encoder/decoder
字元 Unicode 十六進位 (Alt + x)
Unicode 二進位 (按小算盤)
BIG-5 十六進位 (中文全字庫)
U+6771
0110 0111 0111 0001
AA46
🍰 U+1f370
0001 1111 0011 0111 0000
N/A
姓 (君の名は) U+
名 (君の名は) U+
名 (君の名は) U+
U+
957C (BIG-5E)
U+
N/A
U+
U+
N/A
U+
𪚥 U+
N/A

(b) UTF-8 UTF-16 BE UTF-16 LE

字元 Unicode UTF-8 燕脂 UTF-16 BE 瑠璃 UTF-16 LE 千歳緑
U+6771
0110 0111 0111 0001
E6
1110 0110
9D
1001 1101
B1
1011 0001
xx
xxxx xxxx
67
0110 0111
71
0111 0001
xx
xxxx xxxx
xx
xxxx xxxx
71
0111 0001
67
0110 0111
xx
xxxx xxxx
xx
xxxx xxxx
U+
xxxx xxxx xxxx xxxx
U+
xxxx xxxx xxxx xxxx
U+
xxxx xxxx xxxx xxxx

(c) 漢字中的四疊字

字元 Unicode UTF-8 燕脂 UTF-16 BE 瑠璃 UTF-16 LE 千歳緑
U+6771
0110 0111 0111 0001
E6
1110 0110
9D
1001 1101
B1
1011 0001
xx
xxxx xxxx
67
0110 0111
71
0111 0001
xx
xxxx xxxx
xx
xxxx xxxx
71
0111 0001
67
0110 0111
xx
xxxx xxxx
xx
xxxx xxxx
𪚥 U+2A6A5
10 1010 0110 1010 0101
F0
1111 0000
AA
1010 1010
9A
1001 1010
A5
1010 0101
D8
1101 1000
69
0110 1001
DE
1101 1110
A5
1010 0101
69
0110 1001
D8
1101 1000
A5
1010 0101
DE
1101 1110
𨰻 U+
xxxx xxxx xxxx xxxx

(d) 正常顯示 C 語言程式碼中的 UTF-8 漢字。

#include 

int main(){
  printf("中文\n\n");

  // https://stackoverflow.com/questions/29776849/why-cant-i-print-a-unicode-character-in-c-with-wchar-t
  wchar_t a = 0x0041;   /* A */
  printf("%lc\n\n", a);

  // https://www.ithome.com.tw/voice/135711
  char text[] = u8"林𪚥𨰻";
  printf("%s\n\n", text);

  return 0;
}
      
  • 在非 Unicode 環境,由於不同國家採用的字元集不一致,可能無法正常顯示所有字元。微軟使用碼頁(Code page)轉換表,部分解決此問題。通過轉換表,將非 Unicode 的字元編碼,轉換為同一字元對應的系統內部使用的 Unicode 編碼。
  • chcp 950 (Big5)
  • chcp 65001 (UTF-8)
  • 成功後,放一張圖在這裡。
  • (e) Ligature 「合字」「連字」

    FiraCode
  • 一般         ‌ ‍ -> => == === != =/= <= >= <=>
  • FiraCode -> => == === != =/= <= >= <=>
  • 成功後,放一張圖在這裡。
  • 字體設計與文字編碼 Computer Typography and Character Encoding