1#! /usr/bin/perl 2# 3# Copyright (c) 2001-2020, PostgreSQL Global Development Group 4# 5# src/backend/utils/mb/Unicode/UCS_to_JOHAB.pl 6# 7# Generate UTF-8 <--> JOHAB conversion tables from 8# map files provided by Unicode organization. 9# Unfortunately it is prohibited by the organization 10# to distribute the map files. So if you try to use this script, 11# you have to obtain the map files from the organization's download site. 12# https://www.unicode.org/Public/MAPPINGS/ 13# We assume the file include three tab-separated columns: 14# JOHAB code in hex 15# UCS-2 code in hex 16# # and Unicode name (not used in this script) 17 18use strict; 19use warnings; 20 21use convutils; 22 23my $this_script = 'src/backend/utils/mb/Unicode/UCS_to_JOHAB.pl'; 24 25# Load the source file. 26 27my $mapping = &read_source("JOHAB.TXT"); 28 29# Some extra characters that are not in JOHAB.TXT 30push @$mapping, 31 ( { 32 direction => BOTH, 33 ucs => 0x20AC, 34 code => 0xd9e6, 35 comment => '# EURO SIGN', 36 f => $this_script, 37 l => __LINE__ 38 }, 39 { 40 direction => BOTH, 41 ucs => 0x00AE, 42 code => 0xd9e7, 43 comment => '# REGISTERED SIGN', 44 f => $this_script, 45 l => __LINE__ 46 }, 47 { 48 direction => BOTH, 49 ucs => 0x327E, 50 code => 0xd9e8, 51 comment => '# CIRCLED HANGUL IEUNG U', 52 f => $this_script, 53 l => __LINE__ 54 }); 55 56print_conversion_tables($this_script, "JOHAB", $mapping); 57