Jebakan font dan karakter Jepang — menangani JIS2004, IVS, dan gaiji di aplikasi bisnis

· · Font Jepang, JIS2004, Karakter varian, Gaiji, Encoding karakter, Unicode, Aplikasi bisnis, Laporan, Windows

“Karakter 葛 di daftar pelanggan terlihat berbeda di layar dan di formulir cetak. Pelanggan mengeluh data pasti rusak.” — Dalam pemeliharaan sistem bisnis, konsultasi semacam ini tidak jarang. Yang lain yang umum adalah “karakter dalam nama orang tidak tampil di dokumen yang kami serahkan ke kantor pemerintah. Dulu tampil di PC lama; setelah kami ganti, ia menjadi □.”

Keduanya cenderung disebut “mojibake” di lapangan, tetapi itu masalah yang berbeda dari mojibake yang datang dari ketidakcocokan encoding. Di yang pertama, tidak satu bit pun dari data yang berubah dan hanya tampilan yang berubah; di yang kedua, “gaiji” yang hanya ada di PC itu telah hilang.

Apa sebenarnya dua konsultasi umum ituKonsultasi bahwa 葛 terlihat berbeda di layar dan di formulir adalah kasus di mana hanya tampilan yang berubah sementara data tetap sama; konsultasi bahwa karakter menjadi □ setelah penggantian PC adalah kasus di mana gaiji yang hanya ada di PC itu hilang; keduanya adalah masalah yang berbeda dari mojibake ketidakcocokan encodingKonsultasi 1: bentuk berbeda di layar dan di formulirData tidak berubah; hanya tampilan yang berubahKonsultasi 2: menjadi □ setelah penggantianGaiji yang hanya ada di PC itu hilangMasalah yang berbeda dari mojibake encoding

Gambar 1: Dua konsultasi yang cenderung disebut “mojibake” keduanya adalah masalah yang berbeda dari ketidakcocokan encoding.

Janji artikel ini sederhana. Jika Anda memisahkan lapisan kode karakter (data) dari lapisan font (tampilan), sebagian besar masalah karakter Jepang menjadi dapat ditangani. Dari perubahan glif JIS2004, ideographic variation selector (IVS), dan gaiji (EUDC), lewat platform karakter pemerintah, sampai memilih dan menanam font, semuanya ditata dalam bentuk yang dapat dipakai pengembang sistem bisnis dan staf IT untuk keputusan.

“Mojibake” itu sendiri yang terjadi pada konversi Shift_JIS ↔ UTF-8 dibahas di artikel yang sudah ada, jadi artikel ini memusatkan diri pada masalah “kodenya bolak-balik dengan benar, tetapi tampilan atau kemampuan menampilkan menyimpang”.

1. Kesimpulan lebih dulu

  • “Mojibake” dan “glifnya berbeda” adalah masalah yang berbeda. Mojibake adalah kecelakaan di lapisan data karena salah menafsirkan urutan byte; perbedaan glif adalah kecelakaan di lapisan tampilan karena perbedaan glif yang dipegang font; obatnya sama sekali berbeda.
  • Bahkan dengan titik kode Unicode yang sama, glif yang ditampilkan bergantung pada font. JIS X 0213:2004 merevisi glif teladan 168 karakter seperti 葛, 辻, dan 飴 ke bentuk standar cetak, dan Windows pun menjadikan glif JIS2004 sebagai default di MS Gothic / MS Mincho sejak Vista.12
  • Sarana standar untuk mengunci glif sebagai data adalah ideographic variation selector (IVS). Anda menentukan glif dengan urutan karakter dasar plus selector dari U+E0100 dan seterusnya; koleksi seperti Adobe-Japan1, Hanyo-Denshi, dan Moji_Joho (Character Information Platform) terdaftar di IVD Unicode.34
  • Di lingkungan yang tidak mendukung, perilaku yang ditentukan dari IVS adalah selector diabaikan dan glif default karakter dasar ditampilkan. Satu karakter ber-IVS, walaupun, bisa sampai empat unit kode di UTF-16, jadi implementasi penghitungan karakter dan pemotongan perlu hati-hati.5
  • Gaiji (EUDC) punya nasib “hanya dapat tampil di PC itu”. Tidak ada makna yang disepakati untuk titik kode Private Use Area, dan glif yang didaftarkan di eudc.tte tidak ikut ke PC lain, ke surel, atau ke PDF.67
  • Sistem yang menangani nama orang harus memutuskan set karakter yang diterima dan menyatakannya. Di sisi pemerintah, membangun di atas Karakter Terpadu Koseki dan Character Information Platform, sistem yang menyesuaikan dengan standar bergerak ke pemakaian “Karakter Standar untuk Urusan Administratif”.8910
  • Untuk formulir dan PDF, “selaraskan font dengan layar, dan tanamkannya” adalah garis dasar. Apakah penanaman diizinkan ditentukan oleh lisensi font (fsType), dan PDF/A untuk retensi jangka panjang mensyaratkan penanaman font.1112
  • Jangan secara gegabah menerapkan normalisasi (NFKC) pada data nama orang. Menyatukan fullwidth dan halfwidth, serta mengganti karakter kompatibilitas, menghilangkan pembedaan yang harus Anda jaga.13

Dalam satu kalimat: “urutan byte mana yang Anda simpan” adalah masalah desain data; “bagaimana tampilannya” adalah masalah desain font. Jika Anda membahas keduanya tercampur, bahkan masalah yang bisa Anda perbaiki menjadi tidak dapat diperbaiki.

2. Memikirkan data dan tampilan secara terpisah — titik kode dan glif

Di Unicode, sebuah karakter diwakili oleh angka yang disebut titik kode. 葛 adalah U+845B, dan angka ini sama di setiap PC. Bagaimana angka itu digambar di layar atau di kertas, di sisi lain, diputuskan oleh glif yang dipegang font. Perilaku normal jika U+845B yang sama berbeda dalam detail bentuknya antara font A dan font B.

Dengan dua lapisan ini sebagai premis, gejala lapangan dapat dipisah sebagai berikut.

Lapisan Kecelakaan yang terjadi Gejala khas Obat utama
Lapisan data (encoding karakter) Salah tafsir encoding, kehilangan pada konversi Mojibake seperti 縺ッ, substitusi dengan ? atau , U+FFFD (�) Identifikasi dan perbaiki jalur konversi
Lapisan tampilan (font) Perbedaan glif menurut font, glif hilang Data sama tetapi bentuk berbeda; menjadi □ (tofu) Satukan atau ganti font; tanamkannya

Sebagai petunjuk pemisahan, berguna mengingat perbedaan antara “�” dan “□”. “�” dari U+FFFD (REPLACEMENT CHARACTER) adalah jejak kegagalan konversi di lapisan data, dan karakter asli sudah hilang. “□”, di sisi lain, dalam banyak kasus hanya berarti data masih ada tetapi font tidak punya glif, dan mengganti font mungkin membuatnya dapat ditampilkan.

Memisahkan gejala menurut � versus □Ketika karakter tidak tampil dengan benar, � adalah jejak kegagalan konversi di lapisan data di mana karakter asli telah hilang; □ hanya berarti data masih ada tetapi font tidak punya glif, dan mengganti font mungkin membuatnya dapat ditampilkanAnda melihat �Anda melihat □Karakter tidak tampil dengan benarApa yang Anda lihat?Kecelakaan lapisan dataJejak kegagalan konversi(karakter asli hilang)Kecelakaan lapisan tampilanHanya bahwa font tidak punya glifMengganti font mungkin membuatnya dapat ditampilkan

Gambar 2: � adalah tanda kecelakaan lapisan data, □ kecelakaan lapisan tampilan, dan titik masuk investigasi berubah.

Dasar encoding itu sendiri (CP932 dan UTF-8, BOM, kode baris baru) dibahas di “Pengantar encoding teks Windows - Mojibake yang terjadi saat berintegrasi dengan Linux” dan “Encoding teks Windows dan akhir baris - Dasar mojibake dan CRLF/LF”. Mulai dari sini adalah lapisan tampilan, dan masalah yang terjadi di batasnya.

3. Dari JIS90 ke JIS2004 — glif berubah sementara kode tetap sama

Identitas “葛 terlihat berbeda di layar dan di formulir” di pembuka, dalam banyak kasus, ada di sini.

Mengikuti laporan Dewan Bahasa Nasional tahun 2000 “Hyogai Kanji Jitaihyo” (tabel bentuk karakter untuk kanji di luar daftar joyo), revisi 2004 JIS X 0213:2004 (umumnya JIS2004) merevisi glif teladan 168 kanji ke bentuk standar cetak, dekat dengan yang disebut bentuk Kamus Kangxi. 葛, 辻, 飴, 芦, 溢, 餅, dan sejenisnya adalah contoh representatif.1

Windows menyesuaikan ini dan menjadikan glif JIS2004 sebagai default di MS Gothic / MS Mincho (dan Meiryo yang baru diperkenalkan) sejak Windows Vista. MS Gothic saat ini pun punya glif default berbasis JIS2004, dengan struktur bahwa glif era JIS90 dapat diakses lewat fitur OpenType jp90.21

Struktur glif MS Gothic saat iniSejak Vista, MS Gothic punya glif JIS2004 sebagai default, dan mengakses glif era JIS90 lewat fitur OpenType jp90 adalah strukturnyaMS Gothic(Vista dan sesudahnya)Glif default: berbasis JIS2004Lewat fitur jp90Glif era JIS90

Gambar 3: MS Gothic saat ini punya glif JIS2004 sebagai default, dan dapat beralih ke glif JIS90 dengan fitur jp90.

Yang penting di sini adalah bahwa hanya font yang berubah; data sama sekali tidak berubah.

  • Titik kode 葛 adalah U+845B baik di XP maupun Windows 11
  • Di XP (glif JIS90) ia ditampilkan dalam bentuk yang menyederhanakan bagian dalam radikal pembungkus menjadi ヒ; sejak Vista (glif JIS2004) ia ditampilkan dalam bentuk yang juga menulis 人 di dalam
  • Karena itu citra pindaian formulir yang dicetak di sistem lama dan tampilan layar di PC baru tidak cocok pada bentuk karakter. Perbandingan data cocok sepenuhnya

Apakah radikal shinnyo 辻 punya satu titik atau dua, bentuk radikal “makan” 飴, dan sejenisnya sama. Jika Anda tidak tahu sejarah ini, investigasi cenderung ke arah yang salah yaitu “data rusak pada migrasi”. Ketika Anda diberitahu bahwa tampilan karakter berbeda sebelum dan sesudah migrasi, pertama bandingkan titik kodenya, dan jika cocok, curigai perbedaan glif font — itu urutan yang benar.

Titik kode sama, glif berbeda tergantung fontTitik kode U+845B dari 葛 tetap sama baik di XP maupun Windows 11; hanya bentuk yang ditampilkan yang berubah antara font glif JIS90 dan font glif JIS2004, dan perbandingan data cocok sepenuhnyaTitik kode U+845B(葛)Font glif JIS90(XP)Font glif JIS2004(Vista dan sesudahnya)Bentuk yang menyederhanakan bagian dalam menjadi ヒBentuk standar cetak yang menulis 人 di dalamPerbandingan data cocok sepenuhnya

Gambar 4: Hanya font yang berubah; titik kode U+845B tetap sama di setiap lingkungan.

Catat bahwa karena karakter itu sendiri tidak berubah, kedua glif adalah “karakter yang sama”. Dalam nama orang, walaupun, orang atau kantor pemerintah kadang bersikeras pada bentuk tertentu, dan menjawab tuntutan untuk membedakan itu “sebagai data” adalah topik berikutnya, IVS.

4. Ideographic variation selector (IVS) — menentukan glif sebagai data

IVS (Ideographic Variation Sequence) adalah mekanisme yang menempatkan titik kode tak terlihat yang disebut “ideographic variation selector” tepat setelah sebuah kanji, untuk menentukan varian glif sebagai data. Selector yang dipakai adalah U+E0100–U+E01EF (VS17–VS256).3

Urutan “karakter dasar + selector” mana merujuk ke glif mana diputuskan oleh registri yang disebut IVD (Ideographic Variation Database), dikelola oleh Unicode Consortium. Koleksi utamanya sebagai berikut.4

Koleksi Terdaftar Asal dan pemakaian
Adobe-Japan1 2007 Koleksi karakter Jepang Adobe. Fondasi untuk beralih glif varian di font komersial
Hanyo-Denshi 2010 Program Pengembangan Lingkungan Pertukaran Informasi Hanyo-Denshi. Berkorespondensi dengan karakter pemerintah seperti karakter register keluarga dan Basic Resident Register
Moji_Joho 2014 Berkorespondensi dengan Character Information Platform (MJ). Dipakai bersama IPAmj Mincho. Pendaftaran tambahan juga pada Agustus 2026

Dokumentasi Microsoft, misalnya, memberi contoh U+845B saja (葛) dipakai dalam penulisan Stasiun Nishi-Kasai, dan U+845B+U+E0100 (VS17) dipakai dalam penulisan Kota Katsuragi, Nara. 葛 yang sama, tetapi glif mana yang dipakai dapat dibedakan sebagai data.3

Contoh membedakan 葛 yang sama sebagai data dengan IVS葛 sebagai U+845B saja dipakai dalam penulisan Stasiun Nishi-Kasai; urutan U+845B diikuti VS17 dipakai dalam penulisan Kota Katsuragi; urutan mana merujuk ke glif mana diputuskan oleh registri IVDU+845B sajaGlif yang dipakai dalam penulisan Stasiun Nishi-KasaiU+845B + VS17Glif yang dipakai dalam penulisan Kota KatsuragiIVD(registri)

Gambar 5: Bahkan dengan 葛 yang sama, ada atau tidaknya selector memungkinkan Anda membedakan glif mana sebagai data.

4.1. Perilaku di lingkungan yang tidak mendukungnya

Di sisi font, korespondensi antara IVS dan glif diimplementasikan di tabel cmap OpenType (format 14).5 Ketika font yang mendukung (IPAmj Mincho dan sejenisnya) dan aplikasi yang mendukung keduanya ada, glif yang ditentukan muncul; ketika tidak, ia berjalan sebagai berikut.

  • Perilaku benar yang ditentukan: selector diabaikan dan glif default karakter dasar ditampilkan (selector itu sendiri tak terlihat)
  • Aplikasi lama dan beberapa tumpukan gambar: selector diperlakukan sebagai karakter tidak dikenal yang mandiri, dan □ tambahan ditampilkan

Dengan kata lain IVS dirancang agar “meski terdegradasi, karakter dasar tetap dapat dibaca”, tetapi jaminan bahwa “ia akan selalu tampil dalam glif yang ditentukan” bergantung pada lingkungan penerima. Sistem catatan penduduk dan register keluarga pemerintah memakai kombinasi font Character Information Platform plus IVS, tetapi jika sistem bisnis umum menerimanya secara gegabah, glif akan jatuh di suatu tempat pada tampilan, cetak, atau sistem hilir.

Bagaimana data ber-IVS ditampilkanKetika font yang mendukung dan aplikasi yang mendukung keduanya ada, ia tampil dalam glif yang ditentukan; ketika tidak, selector diabaikan dan glif default karakter dasar ditampilkan; di aplikasi lama dan beberapa tumpukan gambar selector diperlakukan sebagai karakter tidak dikenal dan □ tambahan ditampilkanYaTidakDiabaikanLama / beberapa tumpukanDasar + selector IVSFont + aplikasi yang mendukung?Glif yang ditentukanBagaimana ia digambar?Glif default□ tambahanBenar menurut spesifikasi

Gambar 6: IVS tetap dapat dibaca sebagai karakter dasar meski terdegradasi, tetapi apakah glif yang ditentukan muncul bergantung pada lingkungan penerima.

4.2. Catatan implementasi — “satu karakter” bisa sampai empat unit kode

Selector IVS dari U+E0100 dan seterusnya adalah titik kode di supplementary plane, jadi di UTF-16 mereka selalu pasangan surrogate (dua unit kode). Jika karakter dasar adalah kanji supplementary-plane (misalnya 𠮟 (U+20B9F), ditambahkan di JIS2004), dasarnya saja sudah dua unit kode, dan urutan yang dikenali pengguna sebagai “satu karakter” adalah sampai empat unit kode di UTF-16, dan sampai delapan byte di UTF-8.

  • "葛󠄀" C# (葛+VS17) punya string.Length == 3. Substring dan pemotongan panjang tetap berisiko memisahkan karakter dasar dari selector
  • Validasi jumlah karakter dan pemotongan harus dilakukan dalam unit grapheme (API seperti StringInfo), bukan unit kode
  • Untuk panjang kolom DB (nvarchar(n) SQL Server dalam unit kode UTF-16), jika Anda menerima IVS, sediakan dua sampai empat kali jumlah karakter yang tampak
  • Dalam pencarian dan perbandingan, ada atau tidaknya selector membuat string yang berbeda. Apakah pencarian “葛” mengenai “葛+VS17” adalah sesuatu yang perlu Anda putuskan sebagai persyaratan dan implementasikan
Satu karakter ber-IVS dan unit kode UTF-16Urutan karakter dasar dan ideographic variation selector yang dikenali pengguna sebagai satu karakter selalu pasangan surrogate untuk selector, dan jika karakter dasar adalah kanji supplementary-plane dua unit kode lagi, untuk maksimum empat unit kode di UTF-16Satu karakter yang terlihatKarakter dasarVariation selector+2 jika supplementarySelalu 2 unit kodeSampai 4 unit UTF-16Terpisah pada pemotongan tetap

Gambar 7: Satu karakter ber-IVS bisa sampai empat unit kode di UTF-16; memotong menurut unit kode berbahaya.

5. Gaiji (EUDC) — karakter yang hanya tampil di PC itu

Gaiji adalah mekanisme di mana pengguna menetapkan glif sendiri ke titik kode di Unicode Private Use Area (PUA: U+E000–U+F8FF dan sejenisnya). Titik kode Private Use Area tidak punya makna yang disepakati di seluruh dunia; U+E000 yang sama dapat diberi karakter berbeda per PC dan per organisasi.6

Di Windows Anda membuat glif dengan Private Character Editor (eudcedit.exe), dan ia disimpan di berkas font bernama eudc.tte. Berkas ini dipasang sebagai font tersembunyi dan dikaitkan dengan setiap font di registry HKEY_CURRENT_USER\EUDC.7 Di era Shift_JIS (CP932) rentang gaiji adalah 0xF040–0xF9FC, dan pada konversi ke Unicode ia dipetakan ke Private Use Area.

Konsekuensi mekanisme ini jelas.

  • eudc.tte milik PC itu (pengguna itu) dan tidak ikut ke pihak lain bersama data
  • Begitu diteruskan ke surel, PDF, Web, atau sistem lain, ia menjadi □ atau terlihat seperti gaiji berbeda milik pihak lain
  • Jika Anda lupa memigrasikan eudc.tte pada migrasi OS atau penggantian PC, “karakter yang tampil di PC lama tidak akan tampil” terjadi

Ini identitas konsultasi kedua di pembuka.

Mengapa gaiji hanya tampil di PC ituGlif yang dibuat di Private Character Editor disimpan di eudc.tte dan dikaitkan dengan font di registry PC itu, jadi jika hanya kode Private Use Area yang diteruskan ke surel, PDF, atau sistem lain ia menjadi □ atau terlihat seperti karakter berbedaBuat glif PUASimpan di eudc.ttePrivate Char. EditorPemetaan font registryTampil di PC itueudc.tte tertinggalHanya kode PUA yang pergiSurel / PDF / sistem lain□ atau karakter salah

Gambar 8: Glif tinggal di eudc.tte; hanya nomor Private Use Area yang tersisa di data, jadi gaiji terlihat rusak begitu meninggalkan PC.

5.1. Jawaban realistis untuk sistem yang sudah menerima gaiji

Masalahnya adalah ketika data yang diwarisi dari sistem lama sudah mencampur gaiji. Prosedur yang kami rekomendasikan pada keterlibatan migrasi adalah sebagai berikut.

  1. Selidiki: pindai basis data dan berkas dengan ekspresi reguler untuk Private Use Area (U+E000–U+F8FF), dan inventarisasi kode gaiji yang dipakai beserta jumlahnya. Kumpulkan eudc.tte dari PC di setiap situs dan konfirmasi glifnya
  2. Identifikasi: untuk setiap gaiji, selidiki “dapatkah ia diwakili sebagai karakter Unicode biasa”, “dapatkah ia diwakili dengan IVS”, “adakah karakter yang berkorespondensi di Character Information Platform (MJ)”, dan bangun tabel korespondensi karakter pengganti. Dalam praktik mayoritas kasus hanyalah bahwa bentuk lama telah dibuat sebagai gaiji JIS
  3. Ganti: ganti data dari tabel korespondensi. Hanya ketika benar-benar tidak ada karakter yang berkorespondensi, simpan sebagai gambar atau lampirkan catatan pada rekaman itu
  4. Putuskan: di sistem baru, tolak input Private Use Area pada validasi, dan jangan buat gaiji baru
Prosedur memigrasikan data yang berisi gaijiInventarisasi gaiji yang dipakai dengan memindai Private Use Area dan mengumpulkan eudc.tte, bangun tabel korespondensi karakter pengganti dan ganti, dan di sistem baru tolak input Private Use Area pada validasi dan jangan buat gaiji baruSelidiki: pindai PUAIdentifikasi: tabel penggantiGanti dari tabelPutuskan: tidak ada gaiji baruKumpulkan eudc.tteTidak ada peta: gambar atau catatan

Gambar 9: Migrasikan gaiji dalam empat tahap selidiki, identifikasi, ganti, dan putuskan, dan jangan buat gaiji baru.

Arahnya sama di sisi pemerintah: kebijakan telah dinyatakan untuk mengidentifikasi secara unik gaiji yang dibuat kota sendiri (dikatakan sekitar dua juta karakter di seluruh negeri) terhadap Karakter Standar untuk Urusan Administratif yang dijelaskan kemudian, dan menghentikan pemakaiannya.10 “Jangan menambah gaiji; identifikasikan terhadap set karakter yang distandarkan” menjadi pola migrasi yang mapan baik di sektor publik maupun swasta.

6. Platform karakter pemerintah — dari Karakter Terpadu Koseki ke Karakter Standar untuk Urusan Administratif

Dalam desain sistem yang menangani nama orang, mengetahui platform karakter sisi pemerintah menjadi bahan untuk memutuskan “sejauh mana menerima”.

Nama Pengelola Ringkasan
Karakter Terpadu Koseki Kementerian Kehakiman Sekitar 56.000 karakter yang ditata untuk komputerisasi register keluarga. Dapat dicari di situs Kementerian Kehakiman8
Karakter Terpadu Juki-net J-LIS (Japan Agency for Local Authority Information Systems) Sekitar 21.000 karakter yang dipakai di Jaringan Basic Resident Register
Character Information Platform (MJ) Character Information Technology Promotion Council Sekitar 60.000 karakter yang dipakai dalam pekerjaan administratif, ditata. Dikelola dengan nama glif-karakter MJ; font IPAmj Mincho dan daftar informasi karakter MJ diterbitkan. Ditata sebagai proyek IPA dan kini dialihkan ke dewan9
Karakter Standar untuk Urusan Administratif (MJ+) Digital Agency Set karakter yang memperluas Character Information Platform dengan karakter register keluarga yang tidak dapat diidentifikasi terhadap MJ, dan sejenisnya. Nama orang dan sejenisnya di sistem yang menyesuaikan dengan standar memakai set karakter ini; encoding karakternya adalah JIS X 0221:202010

Di sistem bisnis inti kota (sistem yang menyesuaikan dengan standar), struktur dua tingkat ada di spesifikasi standar: pakai Karakter Standar untuk Urusan Administratif untuk interoperasi informasi nama orang dan sejenisnya, dan berinteroperasi dengan sistem eksternal yang tidak punya aturan interoperasi terpadu — ponsel pintar dan sejenisnya — dalam cakupan JIS X 0213:2012.10 Struktur itu sendiri “pegang set karakter yang luas di dalam, dan tukar dengan luar dalam rentang yang dapat ditampilkan lingkungan umum” juga menjadi rujukan untuk sistem swasta.

Interoperasi dua tingkat sistem yang menyesuaikan standarSistem kota yang menyesuaikan standar memakai Karakter Standar untuk Urusan Administratif untuk interoperasi informasi nama orang dan sejenisnya, dan berinteroperasi dengan sistem eksternal seperti ponsel pintar yang tidak punya aturan interoperasi terpadu dalam cakupan JIS X 0213:2012Sistem standar kotaInteroperasi namaSistem eksternalKarakter standar administratifNama orang dll.Cakupan JIS X 0213:2012Tanpa aturan(ponsel pintar)Set luas dipegang di dalam

Gambar 10: Struktur dua tingkat: interoperasi pemerintah memakai Karakter Standar untuk Urusan Administratif; interoperasi eksternal tanpa aturan memakai JIS X 0213:2012.

Sebagai panduan praktis untuk sistem bisnis umum, kami merekomendasikan berikut.

  • Putuskan set karakter yang diterima dan nyatakan baik di spesifikasi maupun validasi input. Misalnya “cakupan JIS X 0213:2012”, “Private Use Area dan karakter penggabung tidak diizinkan”, “IVS tidak diterima (atau diterima, tetapi tampilan dijamin hanya di lingkungan IPAmj Mincho)”
  • Jangan terima tanpa batas. Desain “ini Unicode, jadi apa pun boleh” akan rusak di suatu tempat pada tampilan, cetak, atau interoperasi
  • Putuskan operasi untuk karakter di luar rentang di muka. Aturan mengganti representasi alternatif (bentuk baru, katakana) dan kata-kata yang Anda jelaskan kepada orang itu sendiri adalah spesifikasi sistem
  • Ketika sistem hilir seperti pemerintah atau keuangan punya aturan set karakter, ambil itu sebagai otoritatif dan selaraskan dengannya
Mendesain dan mengoperasikan set karakter yang diterimaPutuskan set karakter yang diterima dan nyatakan baik di spesifikasi maupun validasi input; terima karakter dalam rentang; untuk karakter di luar rentang, putuskan operasi termasuk aturan mengganti representasi alternatif dan kata-kata yang Anda jelaskan kepada orang ituYaTidakPutuskan set karakter yang diterimaNyatakan di spesifikasiNyatakan di validasi inputDalam rentang?TerimaGanti dengan representasi alternatifKata-kata yang Anda jelaskan kepada orang itu juga spesifikasi

Gambar 11: Nyatakan set karakter yang diterima baik di spesifikasi maupun validasi input, dan putuskan juga operasi di luar rentang.

7. Memilih dan menanam font — menyelaraskan layar dan formulir

7.1. Karakter font yang biasa

Font Cakupan Karakter dan di mana memakainya
MS Gothic / MS Mincho Standar Windows Tangan lama yang dirancang untuk layar beresolusi rendah. Glif default berbasis JIS20042. Masih dipakai untuk menjaga kompatibilitas dengan formulir lama
Meiryo Vista dan sesudahnya Huruf layar modern yang mengasumsikan ClearType. Muncul bersamaan dengan migrasi JIS2004 generasi Vista1
Yu Gothic / Yu Mincho Windows 8.1 dan sesudahnya Keluarga yang dikirim baik di Windows maupun macOS, yang memudahkan menyelaraskan tampilan dokumen
BIZ UD Gothic / BIZ UD Mincho Windows 10 1809 dan sesudahnya Huruf desain universal Morisawa. Kandidat pertama pada keterlibatan yang menekankan keterbacaan formulir dan layar14
Noto Sans JP Dipasang terpisah Disediakan sebagai sumber terbuka, dan mudah dibundel di server atau lingkungan Linux serta dikirim di Web

Yang penting dalam pilihan bukan selera huruf melainkan apakah font itu ada di setiap lingkungan yang terlibat dalam tampilan, cetak, dan pembuatan PDF. Font pelengkap Jepang di Windows 10/11 (BIZ UD dan sejenisnya) kadang tidak ada tergantung konfigurasi, dan dalam konfigurasi yang membuat PDF di sisi server, ada atau tidaknya font di server berdampak langsung.

Lingkungan yang dikonfirmasi saat memilih fontDalam memilih font, yang penting bukan selera huruf melainkan apakah font itu ada di setiap lingkungan yang terlibat dalam tampilan, cetak, dan pembuatan PDF; konfigurasi font pelengkap dan ada atau tidaknya font di server berdampak langsungFont kandidatDi setiap lingkungan?Lingkungan tampilanPrinter atau server PDF?Lingkungan cetakServer pembuatan PDFFont pelengkap?Mungkin tidak adaFont di server penting

Gambar 12: Pilih font kurang menurut selera huruf daripada menurut apakah ia ada di setiap lingkungan tampilan, cetak, dan pembuatan PDF.

7.2. Dasar desain formulir — selaraskan, dan tanam

  • Tentukan font yang sama di layar dan di formulir. Jika fontnya berbeda, data yang sama bisa terlihat seperti glif berbeda, dan Anda mendapat keluhan di pembuka. Konfigurasi seperti “Meiryo di layar, MS Mincho di formulir” setidaknya harus dicek apakah ada perbedaan glif pada 168 karakter JIS2004
  • Tanam font di PDF. Jika Anda tidak menanam, sisi yang melihat menggambar pengganti dengan font yang ada di tangan, dan bukan hanya glif tetapi tata letak bisa berubah
  • Apakah penanaman diizinkan ditentukan oleh lisensi. Font OpenType menyatakan izin penanaman di field fsType (Installable / Restricted / Preview & Print / Editable, no-subsetting, dan sejenisnya), dan Anda tidak boleh menanam font yang penanamannya tidak dilisensikan.11 Untuk font komersial, mengonfirmasi kontrak diperlukan
  • Jadikan subset embedding sebagai garis dasar. Jika Anda hanya menanam glif karakter yang dipakai, Anda tidak harus menanggung seluruh font Jepang (beberapa MB sampai puluhan MB)
  • Jika ada persyaratan retensi jangka panjang, PDF/A. PDF/A (ISO 19005) adalah standar yang menyelesaikan sumber daya yang dibutuhkan untuk tampilan di dalam berkas, dan penanaman font diwajibkan.12 Itu juga cara paling andal untuk mencegah “sepuluh tahun kemudian saya membukanya dan glifnya sudah berubah”
Alur keputusan penanaman fontSebelum menanam font di PDF, konfirmasi lisensi penanaman fsType; jika dilisensikan, jadikan subset embedding sebagai garis dasar; jika ada persyaratan retensi jangka panjang, pertimbangkan PDF/A, yang mensyaratkan penanamanDilisensikanTidak dilisensikanPersyaratan retensi jangka panjangTanam font di PDFApakah penanaman dilisensikan oleh fsType?Subset embedding adalah garis dasarAnda tidak boleh menanamHanya glif karakter yang dipakaiPertimbangkan PDF/APenanaman font diwajibkan

Gambar 13: Penanaman mengasumsikan mengonfirmasi lisensi fsType; subset embedding dan PDF/A adalah garis dasar.

Cara memilih sarana implementasi untuk cetak dan keluaran PDF dibahas mendalam di “Pencetakan dan keluaran PDF di aplikasi bisnis Windows”.

8. Font linking dan fallback — fenomena “font lain tercampur”

Karakter yang font yang ditentukan tidak punya glifnya tidak ditampilkan sebagai kosong; menggambar pengganti di font lain adalah perilaku default tumpukan gambar modern. Di GDI, “font linking” yang didefinisikan di registry (FontLink\SystemLink) melakukan ini; di DirectWrite, WPF, dan peramban, “font fallback” yang melakukannya.15

Alur font linking dan fallbackJika font yang ditentukan punya glif ia ditampilkan apa adanya; jika tidak, ia digambar pengganti di font tautan atau fallback; jika tidak ada glif di mana pun ia menjadi □, tetapi data sering masih hidupYaTidakYaTidakTampilkan karakterApakah font yang ditentukan punya glif?Tampilkan di font yang ditentukanAda di target tautan atau fallback?Gambar pengganti di font lainPenyebab rasa huruf tercampur□(tofu) ditampilkanData sering masih hidup

Gambar 14: □ adalah jejak kegagalan fallback; apakah menggambar pengganti berhasil adalah cabang antara “tercampur” dan “tofu”.

Mengetahui mekanisme ini memungkinkan Anda menjelaskan kasus umum berikut.

  • Rasa huruf berbeda antara Latin dan Jepang: karena font Latin ditentukan lebih dulu, hanya porsi Jepang yang digambar di font Jepang yang ditautkan atau fallback
  • Hanya kanji dalam kalimat Jepang yang menjadi glif bergaya Tionghoa: target fallback terselesaikan ke font Tionghoa. Mudah terjadi di halaman Web atau aplikasi yang tidak meneruskan informasi bahasa (atribut lang atau locale) dengan benar
  • Tofu (□) muncul: baik font yang ditentukan maupun target fallback tidak punya glif. Dengan kata lain □ adalah “jejak kegagalan fallback”, dan data sering masih hidup

Fallback adalah mekanisme bantuan; bukan pengganti memilih font yang benar dari awal.15 Di aplikasi bisnis posisi yang sehat adalah “pada jalur tampilan dan cetak utama, selesaikan dengan font yang dirancang saja; fallback adalah asuransi untuk karakter tak terduga”. Untuk pemikiran pemilihan font di UI multibahasa, lihat juga “Melokalkan aplikasi WinForms/WPF”.

9. Daftar periksa implementasi untuk aplikasi bisnis

Akhirnya, poin yang dikonfirmasi di setiap lapisan dari input sampai interoperasi dirangkum dalam tabel.

Lapisan Kecelakaan khas Poin desain dan implementasi
Input Karakter yang bergantung lingkungan, karakter ber-IVS, dan karakter Private Use Area masuk dari IME Putuskan set karakter yang diterima dan validasi. Untuk di luar rentang, panduan (menawarkan representasi alternatif) daripada galat menjaga pekerjaan konter tetap berjalan
Normalisasi Konversi tak disengaja seperti NFKC mengubah ㈱ menjadi (株), menyatukan fullwidth dan halfwidth, ① menjadi 1. Bahkan NFC mengganti CJK Compatibility Ideograph (mis. U+FA19 神) dengan Unified Ideograph U+795E Jangan terapkan NFKC pada nama orang dan alamat. Batasi normalisasi pada suatu pemakaian (menghasilkan kunci pencarian, dan sejenisnya) dan simpan yang asli sebagaimana dimasukkan13
Penyimpanan Kekurangan panjang kolom dari pasangan surrogate dan IVS; pemotongan menurut unit kode Simpan dalam UTF-8/UTF-16 dan beri kelonggaran panjang kolom dalam unit kode. Potong dalam unit grapheme
Tampilan □ karena font tidak punya glif; glif berubah lewat fallback Secara eksplisit tentukan font yang dapat menampilkan set karakter sasaran, dan konfirmasi cakupan standar di OS sasaran
Cetak dan PDF Perbedaan glif antara layar dan formulir; menggambar pengganti di sisi yang melihat Selaraskan font di layar dan di formulir, dan subset-embed di PDF setelah mengonfirmasi lisensi11
Interoperasi dengan sistem lain Kanji tambahan JIS X 0213, IVS, dan gaiji menjadi ? atau pada konversi Shift_JIS (CP932) Nyatakan encoding karakter dan set karakter di spesifikasi interoperasi. Jika interoperasi CP932 tetap ada, implementasikan deteksi karakter yang tidak dapat dikonversi dan aturan substitusi

Normalisasi khususnya adalah jebakan yang merupakan tema artikel ini sendiri: proses yang diterapkan “dengan niat baik” yang meremukkan pembedaan karakter varian dan fullwidth versus halfwidth. Yang asli apa adanya; pemrosesan pada salinan adalah prinsipnya. Kecelakaan encoding karakter pada interoperasi CSV dibahas mendalam di “CSV bukan "sekadar teks"”.

Yang asli apa adanya; pemrosesan pada salinanSimpan string yang dimasukkan apa adanya sebagai yang asli; terapkan normalisasi pada salinan yang dibatasi pada suatu pemakaian seperti menghasilkan kunci pencarian; menerapkan NFKC pada yang asli menghilangkan pembedaan karakter varian dan fullwidth versus halfwidthString yang dimasukkanAsli: simpan sebagaimana dimasukkanSalinan: normalkan, dibatasi pada suatu pemakaianMenghasilkan kunci pencarian, dan sejenisnyaNFKC pada yang asli meremukkan pembedaan

Gambar 15: Batasi normalisasi pada suatu pemakaian dan terapkan pada salinan; simpan yang asli sebagaimana dimasukkan.

10. Ringkasan

  • Pisahkan masalah karakter pertama-tama ke “lapisan data (encoding karakter)” dan “lapisan tampilan (font)”. � adalah tanda kecelakaan lapisan data, □ kecelakaan lapisan tampilan.
  • JIS X 0213:2004 mengubah glif teladan 168 karakter, dan Windows punya glif JIS2004 sebagai default sejak Vista. 葛, 辻, dan 飴 terlihat berbeda menurut lingkungan adalah sejarah font, bukan kerusakan data.
  • Sarana standar untuk mengunci glif sebagai data adalah IVS, tetapi tanpa font yang mendukung dan aplikasi yang mendukung ia jatuh ke glif default. Jangan lupa dampak implementasi bahwa satu karakter bisa sampai empat unit kode UTF-16.
  • Gaiji (EUDC) adalah aset khusus PC itu dan tidak dapat ikut bersama data. Jawaban realistis adalah menginventarisasi saat migrasi, mengganti dari tabel korespondensi ke karakter biasa atau IVS, dan berhenti membuat yang baru.
  • Sistem yang menangani nama orang memutuskan set karakter yang diterima dan menyatakannya. Pemerintah distandarkan ke Karakter Standar untuk Urusan Administratif di atas fondasi Karakter Terpadu Koseki dan Character Information Platform, dan sistem yang berinteroperasi perlu mengikuti pergerakan itu.
  • Untuk formulir dan PDF, “selaraskan font dengan layar, konfirmasi lisensi, dan tanam” adalah garis dasar. Untuk retensi jangka panjang, pertimbangkan PDF/A.
  • Normalisasi NFKC, pemotongan menurut unit kode, dan konversi CP932 adalah tiga titik yang diam-diam merusak karakter varian dan gaiji. Jadikan menyimpan yang asli dan memproses dalam unit grapheme sebagai prinsip.

Lain kali Anda diberitahu “karakternya berbeda”, pertama rumuskan ulang pertanyaan ini. Apakah titik kodenya sama, atau berbeda? Jika sama itu masalah font; jika berbeda itu masalah data. Satu langkah itu mencegah Anda mengambil titik masuk investigasi yang salah.

Pertanyaan pertama yang memutuskan titik masuk investigasiKetika Anda diberitahu karakternya berbeda, pertama bandingkan apakah titik kodenya sama atau berbeda; jika sama mulai investigasi sebagai masalah font, jika berbeda sebagai masalah dataSamaBerbedaAnda diberitahu karakternya berbedaApakah titik kodenya sama?Masalah fontMasalah data

Gambar 16: Jika titik kodenya sama, mulai investigasi sebagai masalah font; jika berbeda, sebagai masalah data.

Artikel terkait

Area konsultasi terkait

KomuraSoft LLC menangani desain dan investigasi seputar karakter di sistem bisnis. Dari mengisolasi penyebab gejala seperti “karakter berbeda di layar dan di formulir” atau “setelah migrasi nama orang menjadi □”, lewat menginventarisasi gaiji dan membangun tabel karakter pengganti saat migrasi dari sistem lama, merancang set karakter yang diterima dari sistem yang menangani nama orang, dan meninjau konfigurasi penanaman font formulir dan PDF, kami mencakup baik lapisan kode maupun lapisan font.

Tautan referensi

  1. Morisawa Inc., JIS X 0213:2004 (JIS2004) | Font glossary. Tentang glif teladan 168 kanji yang direvisi di JIS X 0213:2004, mengikuti Hyogai Kanji Jitaihyo, ke bentuk standar cetak (yang disebut bentuk Kamus Kangxi); dan tentang font yang mampu JIS2004 dimasukkan sebagai standar di Windows Vista.  2 3 4

  2. Microsoft Learn, MS Gothic font family. Tentang glif default keluarga MS Gothic yang berbasis JIS2004, dan tentang dapat mengakses glif warisan JIS90 lewat fitur OpenType ‘jp90’.  2 3

  3. Microsoft Learn, The Unicode standard. Tentang variation sequence yang tersusun dari karakter dasar plus ideographic variation selector (VS1–VS256, U+FE00–U+FE0F dan U+E0100–U+E01EF); tentang contoh membedakan U+845B 葛 dari U+845B+U+E0100 (VS17) (Stasiun Nishi-Kasai dan Kota Katsuragi); dan tentang font yang mendukung diperlukan untuk tampilan.  2 3

  4. Unicode Consortium, Ideographic Variation Database. Registri IVS berdasarkan UTS #37. Tentang koleksi seperti Adobe-Japan1 (2007), Hanyo-Denshi (2010), dan Moji_Joho (2014) yang terdaftar, dan tentang pendaftaran tambahan ke koleksi Moji_Joho juga dibuat di edisi Agustus 2026.  2

  5. Microsoft Learn, cmap — Character to Glyph Index Mapping Table (OpenType spec). Tentang font OpenType yang mengimplementasikan Unicode Variation Sequences di cmap subtable format 14; tentang pembedaan antara UVS default dan non-default; dan tentang contoh pemakaian di font yang mampu JIS2004.  2

  6. Microsoft Learn, End-User-Defined and Private Use Area Characters. Tentang gaiji (EUDC) dan karakter Private Use Area (PUA) yang didefinisikan secara mandiri oleh pengguna atau organisasi, dan tentang titik kode yang sama dapat punya penetapan berbeda — dan bertabrakan — tergantung komputer.  2

  7. Microsoft Learn, Character Sets and Fonts. Tentang PUA (U+E000–U+F8FF dan sejenisnya) yang dipakai untuk keperluan Unicode EUDC; tentang membuat glif di Private Character Editor; dan tentang font EUDC yang dipasang tersembunyi sebagai berkas .tte dan dikaitkan dengan font di registry HKEY_CURRENT_USER\EUDC.  2

  8. Ministry of Justice, Koseki Unified Character Information — search-condition input. Situs pencarian resmi Karakter Terpadu Koseki yang disediakan Kementerian Kehakiman. Tentang dapat mencari glif, bacaan, dan informasi terkait karakter yang dipakai di register keluarga.  2

  9. Character Information Technology Promotion Council, Character Information Platform project. Tentang Character Information Platform (glif karakter MJ, daftar informasi karakter MJ, dan font IPAmj Mincho), ditata oleh IPA dengan dukungan Kementerian Ekonomi, Perdagangan, dan Industri dan lainnya serta mencakup sekitar 60.000 kanji yang dipakai dalam pekerjaan administratif, kini dialihkan ke dewan dan diterbitkan.  2

  10. Digital Agency, Report of the Study Group on the Operation of Character Requirements in Local-Government Information Systems (July 2024). Tentang gaiji yang dipakai di kota yang dikatakan sekitar dua juta karakter; tentang “Karakter Standar untuk Urusan Administratif” (umumnya MJ+), perluasan Character Information Platform, menjadi set karakter untuk nama orang dan sejenisnya di sistem yang menyesuaikan dengan standar, dengan encoding karakter JIS X 0221:2020; tentang memakai Karakter Standar untuk Urusan Administratif untuk interoperasi informasi nama orang dan sejenisnya, dan JIS X 0213:2012 untuk interoperasi dengan ponsel pintar dan sejenisnya; dan tentang kebijakan mengidentifikasi secara unik gaiji konvensional terhadap Karakter Standar untuk Urusan Administratif dan tidak memakainya.  2 3 4

  11. Microsoft Learn, OS/2 — OS/2 and Windows Metrics (OpenType spec). Tentang field fsType font yang mendefinisikan lisensi penanaman (Installable / Restricted License / Preview & Print / Editable, bit no-subsetting, dan sejenisnya), dan tentang aplikasi tidak diizinkan menanam font yang penanamannya tidak dilisensikan.  2 3

  12. PDF Association, PDF/A Basics. Tentang PDF/A retensi jangka panjang (ISO 19005) yang mensyaratkan elemen yang dibutuhkan untuk menampilkan dokumen dimasukkan di dalam berkas, dengan penanaman font sebagai contoh yang diwajibkan yang representatif.  2

  13. Microsoft Learn, Using Unicode Normalization to Represent Strings. Tentang empat bentuk normalisasi Unicode NFC/NFD/NFKC/NFKD; dan tentang bentuk KC/KD yang menyatukan karakter kompatibilitas seperti karakter fullwidth dan halfwidth serta kehilangan informasi, sehingga umumnya tidak cocok sebagai bentuk tersimpan kanonik dari sebuah string.  2

  14. Microsoft Learn, BIZ UDGothic font family. Tentang huruf desain universal Morisawa BIZ UD Gothic yang dimasukkan sebagai font pelengkap Jepang sejak Windows 10 versi 1809. 

Artikel terbaru dengan tag yang sama untuk mendalami topik-topik terdekat.

Halaman-halaman ini menempatkan topik dalam konteks layanan dan keputusan yang lebih luas.

Artikel ini berkaitan langsung dengan layanan berikut.

Pertanyaan yang sering diajukan

Pertanyaan yang sering muncul dalam konsultasi tentang topik artikel ini.

Mengapa karakter 葛 yang sama terlihat berbeda tergantung PC atau formulir cetak?
Kemungkinan besar itu perbedaan glif font, bukan mojibake. JIS X 0213:2004 (JIS2004) merevisi glif teladan 168 kanji ke bentuk standar cetak, dan Windows pun menjadikan glif JIS2004 sebagai default di MS Gothic / MS Mincho dan lainnya sejak Vista. 葛, 辻, 飴, dan sejenisnya adalah contoh representatif: titik kode Unicode (data) tetap sama, dan hanya glif yang dipegang font (tampilan) yang berubah. Bandingkan datanya dan keduanya cocok; ketidakcocokan bentuk antara citra formulir era XP dan layar PC baru adalah perilaku yang ditentukan. Jika Anda ingin glifnya juga selaras, pakai font yang sama di layar dan di formulir, atau tentukan glif dengan ideographic variation selector.
Jika kita memakai ideographic variation selector (IVS), apakah itu menyelesaikan setiap masalah glif nama orang?
Tidak. IVS adalah mekanisme yang menempatkan selector dari U+E0100 dan seterusnya tepat setelah karakter dasar untuk menentukan glif sebagai data, dan glif yang ditentukan hanya ditampilkan ketika font yang mendukung seperti IPAmj Mincho dan aplikasi yang mendukung keduanya ada. Di lingkungan yang tidak mendukung, perilaku yang ditentukan adalah selector diabaikan dan glif default karakter dasar ditampilkan; di beberapa lingkungan selector juga bisa muncul sebagai □. Lebih jauh, satu karakter ber-IVS bisa sampai empat unit kode di UTF-16, yang memengaruhi penghitungan karakter, pemotongan, dan desain panjang kolom DB. Jika Anda memperkenalkannya, konfirmasi cakupan dukungan lewat tampilan, cetak, dan sistem hilir sebelum memakainya.
Bisakah karakter yang didaftarkan sebagai gaiji (EUDC) tampil di PC lain atau di PDF?
Pada prinsipnya tidak. Gaiji adalah mekanisme di mana pengguna mendaftarkan glif ke berkas eudc.tte PC itu pada titik kode di Unicode Private Use Area (U+E000 dan seterusnya); titik kode yang sama tidak terdefinisi atau menjadi glif berbeda di PC lain. Nasib meneruskannya ke surel, PDF, atau sistem lain karenanya adalah menjadi □ atau terlihat seperti karakter berbeda. Jika Anda sudah mewarisi data yang berisi gaiji, jalur realistis saat migrasi adalah menginventarisasi pemakaian Private Use Area, membangun tabel korespondensi ke karakter Unicode biasa atau ideographic variation selector, lalu mengganti. Anda sebaiknya menghindari membuat gaiji baru di sistem baru.
Sejauh mana sistem bisnis harus menerima karakter dalam nama orang?
Yang pertama adalah "memutuskan set karakter yang diterima dan menyatakannya sebagai spesifikasi". Register keluarga punya sekitar 56.000 Karakter Terpadu Koseki, dan sistem yang menyesuaikan dengan standar pemerintah bergerak ke pemakaian Karakter Standar untuk Urusan Administratif, perluasan dari Character Information Platform — tetapi sistem bisnis umum tidak wajib menerima tingkat yang sama tanpa batas. Desain yang realistis adalah memutuskan rentang seperti "sampai cakupan JIS X 0213" atau "tidak menerima ideographic variation selector atau Private Use Area", memvalidasi saat input, dan mengoperasikan kasus di luar rentang dengan peringatan atau representasi alternatif. Hanya sistem yang berinteroperasi dengan sistem pemerintah atau kota yang perlu mengikuti pergerakan Karakter Standar untuk Urusan Administratif dan persyaratan interoperasi berbasis JIS X 0221.
Bagaimana kita membuat formulir atau PDF menampilkan karakter yang sama dengan layar?
Garis dasarnya adalah menentukan font yang sama di layar dan di formulir, serta menanam font di PDF. Jika fontnya berbeda, data yang sama bisa mengubah glif; jika PC yang melihat tidak punya font itu, font pengganti dipakai untuk menggambar dan tampilan rusak. Apakah penanaman diizinkan ditentukan oleh lisensi font (OpenType fsType), jadi konfirmasikan, jangan menyerahkannya pada pustaka laporan. Subset embedding, yang hanya menanam karakter yang dipakai, juga menekan ukuran berkas. Jika retensi jangka panjang adalah persyaratan, pertimbangkan PDF/A, yang mensyaratkan penanaman font.

Profil penulis

Halaman perkenalan penulis artikel.

Go Komura

Direktur KomuraSoft LLC

Berspesialisasi dalam pengembangan perangkat lunak Windows, konsultasi teknis, dan investigasi bug, terutama pada proyek dengan sistem yang sudah ada dan bug yang sulit direproduksi.

Kembali ke blog