大家好,欢迎来到IT知识分享网。
越南文,一般指现代越南所使用的“国语字”,采用拉丁字母拼写。越南的国语为越南语,属于南亚语系越芒语族越语支,有85至90%的越南人、居住在海外的300万越南侨使用,中国广西的部分京族亦使用越南语。
使用人口:9500万
难度系数:6.5
一、字体
由于越南文采用的是拉丁文字母,故凡是支持拉丁文的字体,基本都支持越南文,只需考虑其显示效果及版权。
二、编码
具体请参考“Window越南语(CP1258)”,它还包含了:1E00-1EFF #拉丁文扩充附加 (Latin Extended Additional),其中的部分编码符号。由于编码不连续,枚举列表如下:
00A8,00C0,00C1,00C2,00C3, 00C5,00C6,00C7,00C8,00C9, 00CA,00CC,00CD,00CF,00D1, 00D2,00D3,00D4,00D5,00D6, 00D8,00D9,00DA,00DC,00DD, 00E0,00E1,00E2,00E3,00E5, 00E6,00E7,00E8,00E9,00EA, 00EC,00ED,00EF,00F1,00F2, 00F3,00F4,00F5,00F6,00F8, 00F9,00FA,00FC,00FD,0102, 0103,0106,0107,0110,0111, 0112,0113,0128,0129,0139, 013A,0143,0144,014C,014D, 0154,0155,015A,015B,0168, 0169,0179,017A,01A0,01A1, 01AF,01B0,01D7,01D8,01DB, 01DC,01F4,01F5,01F8,01F9, 01FA,01FB,01FC,01FD,01FE, 01FF,0300,0301,0303,0309, 031B,0323,0385,1E04,1E05, 1E08,1E09,1E0C,1E0D,1E14, 1E15,1E16,1E17,1E24,1E25, 1E2E,1E2F,1E30,1E31,1E32, 1E33,1E36,1E37,1E3E,1E3F, 1E42,1E43,1E46,1E47,1E4C, 1E4D,1E4E,1E4F,1E50,1E51, 1E52,1E53,1E54,1E55,1E5A, 1E5B,1E62,1E63,1E6C,1E6D, 1E78,1E79,1E7C,1E7D,1E7E, 1E7F,1E80,1E81,1E82,1E83, 1E88,1E89,1E92,1E93,1EA0, 1EA1,1EA2,1EA3,1EA4,1EA5, 1EA6,1EA7,1EA8,1EA9,1EAA, 1EAB,1EAC,1EAD,1EAE,1EAF, 1EB0,1EB1,1EB2,1EB3,1EB4, 1EB5,1EB6,1EB7,1EB8,1EB9, 1EBA,1EBB,1EBC,1EBD,1EBE, 1EBF,1EC0,1EC1,1EC2,1EC3, 1EC4,1EC5,1EC6,1EC7,1EC8, 1EC9,1ECA,1ECB,1ECC,1ECD, 1ECE,1ECF,1ED0,1ED1,1ED2, 1ED3,1ED4,1ED5,1ED6,1ED7, 1ED8,1ED9,1EDA,1EDB,1EDC, 1EDD,1EDE,1EDF,1EE0,1EE1, 1EE2,1EE3,1EE4,1EE5,1EE6, 1EE7,1EE8,1EE9,1EEA,1EEB, 1EEC,1EED,1EEE,1EEF,1EF0, 1EF1,1EF2,1EF3,1EF4,1EF5, 1EF6,1EF7,1EF8,1EF9,1FED, 20AB
说明: 仅供参考。
三、书写规则
1、字符叠加
说明:Letters + Tone Marks,可能会需要实现上下叠加。
解决方法: 需要字库包含 bbx(x,y 偏移等) 信息,便于字符叠加。
2、连写组合
说明:0041 + 0300 = 00C0, 换一种表达方式:当遇到 0041, 0300,直接显示 00C0 即可。若是按叠加方式,不同字符,叠加位置可能会稍存偏差。
解决方式:建表查表可解,列表如下,仅供参考。
static const struct { unsigned short base; unsigned short composite; } viet_comp_table_data[] = { #define viet_comp_table0300_idx 0 #define viet_comp_table0300_len 31 { 0x0041, 0x00C0 }, { 0x0045, 0x00C8 }, { 0x0049, 0x00CC }, { 0x004E, 0x01F8 }, { 0x004F, 0x00D2 }, { 0x0055, 0x00D9 }, { 0x0057, 0x1E80 }, { 0x0059, 0x1EF2 }, { 0x0061, 0x00E0 }, { 0x0065, 0x00E8 }, { 0x0069, 0x00EC }, { 0x006E, 0x01F9 }, { 0x006F, 0x00F2 }, { 0x0075, 0x00F9 }, { 0x0077, 0x1E81 }, { 0x0079, 0x1EF3 }, { 0x00A8, 0x1FED }, { 0x00C2, 0x1EA6 }, { 0x00CA, 0x1EC0 }, { 0x00D4, 0x1ED2 }, { 0x00DC, 0x01DB }, { 0x00E2, 0x1EA7 }, { 0x00EA, 0x1EC1 }, { 0x00F4, 0x1ED3 }, { 0x00FC, 0x01DC }, { 0x0102, 0x1EB0 }, { 0x0103, 0x1EB1 }, { 0x01A0, 0x1EDC }, { 0x01A1, 0x1EDD }, { 0x01AF, 0x1EEA }, { 0x01B0, 0x1EEB }, 。。。
四、模拟效果
font= Arial,w=27,h=24,bpp=1
font= Arial,w=28,h=24,bpp=8
注意事项:
1、由于部分拉丁符号叠加层次多,会间接拉高字符整体高度。如下图示:
参考:在Windows系统上,不同的字体处理方式不一。具体详见:
想不到字体设计中也有“五线谱”的概念
参考文献:
- Unicode 12.1.CodeCharts.pdf
- UnicodeStandard-12.0.pdf
辅助工具:
- FontCreator
- GuiTool
- BdfEditor
- Charmap
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/167960.html