修改iconv源代码,使其支持【JIS X0208保留领域13区】的转码---最终代码
来源:互联网 发布:centos国内yum源 编辑:程序博客网 时间:2024/05/22 12:59
日文ISO-2022-JP编码支持的【JIS X0208保留领域13区】
区点 JIS SJIS +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 13区 2D20 873F ①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮2D30 874F ⑯⑰⑱⑲⑳ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ 2D40 875F ㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻2D50 876F ㎜㎝㎞㎎㎏㏄㎡ ㍻2D60 8780 〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼2D70 8790 ≒≡∫∮∑√⊥∠∟⊿∵∩∪
修改原函数:
libiconvxxx/lib/目录下的jisx0208.h文件
增加代码:
/* *Windows的机种依存文字 PC-9800系列等,NEC的电脑在日本主流的时候曾独自被定义了文字13区分配。 **/static const unsigned short jisx0208_2uni_page2D[96] = {/* 0x2D20 - 0x2D2F */0xfffd, 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466,0x2467,0x2468, 0x2469, 0x246A, 0x246B, 0x246C, 0x246D, 0x246E,/* 0x2D30 - 0x2D3F */0x246F,0x2470, 0x2471, 0x2472, 0x2473, 0x2160, 0x2161, 0x2162,0x2163,0x2164,0x2165, 0x2166, 0x2167, 0x2168, 0x2169, 0xfffd,/* 0x2D40 - 0x2D4F */0x3349, 0x3314,0x3322, 0x334D, 0x3318, 0x3327, 0x3303, 0x3336,0x3351,0x3357,0x330D, 0x3326, 0x3323, 0x332B, 0x334A, 0x333B,/* 0x2D50 - 0x2D5F */0x339C, 0x339D, 0x339E, 0x338E, 0x338F, 0x33C4, 0x33A1, 0xfffd,0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x337B,/* 0x2D60 - 0x2D6F */0x301D, 0x301F, 0x2116, 0x33CD, 0x2121, 0x32A4, 0x32A5, 0x32A6,0x32A7, 0x32A8, 0x3231, 0x3232, 0x3239, 0x337E, 0x337D, 0x337C,/* 0x2D70 - 0x2D7F */0x2252, 0x2261, 0x222B, 0x222E, 0x2211, 0x221A, 0x22A5, 0x2220,0x221F, 0x22BF, 0x2235, 0x2229, 0x222A, 0xfffd, 0xfffd, 0xfffd};
修改原函数:
static intjisx0208_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n){ unsigned char c1 = s[0]; /* 增加jp 对 [Windows的机种依存文字] 解码的支持*/ if (c1 == 0x2D) { if (n >= 2) {unsigned char c2 = s[1];if (c2 >= 0x20 && c2 < 0x7F) { unsigned int i = (c2 - 0x20); unsigned short wc = jisx0208_2uni_page2D[i]; *pwc = (ucs4_t) wc; return 2;}return RET_ILSEQ; } return RET_TOOFEW(0); } /* end */ if ((c1 >= 0x21 && c1 <= 0x28) || (c1 >= 0x30 && c1 <= 0x74)) { if (n >= 2) { unsigned char c2 = s[1]; if (c2 >= 0x21 && c2 < 0x7f) { unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); unsigned short wc = 0xfffd; if (i < 1410) { if (i < 690) wc = jisx0208_2uni_page21[i]; } else { if (i < 7808) wc = jisx0208_2uni_page30[i-1410]; } if (wc != 0xfffd) { *pwc = (ucs4_t) wc; return 2; } } return RET_ILSEQ; } return RET_TOOFEW(0); } return RET_ILSEQ;}
- 修改iconv源代码,使其支持【JIS X0208保留领域13区】的转码---最终代码
- 修改HTK代码,让其支持中文
- 修改fckeditor源代码让其支持附件上传(asp.net)
- 修改Android的编译文件使其支持wml
- 修改2410的linux串口驱动,使其支持RS485
- 修改2410的linux串口驱动,使其支持RS485
- JqueryEasyUI修改DataGrid使其支持多选框
- JqueryEasyUI修改DataGrid使其支持多选框
- 修改tomcat使其支持中文
- jis
- 给EditText添加一个工具方法,使其支持仅保留到第N位小数
- 修改ReadMorePlugin.java,使其支持中文标题(roller webblog)
- DirectShow 修改CCaptureVideo类,使其支持多次打开
- 修改ThinkPHP使其支持多级域名部署
- 修改r8169驱动,使其仅支持百兆
- 修改mini hook,使其支持vc6.0,x64系统
- 修改android monkey源码使其支持UI自动化测试
- 修改android monkey源码使其支持UI自动化测试
- android之远程服务的调用
- ubuntu下virtual box运行windows增加usb支持
- js删除最后一个字符的方法
- Android中使用Animation实现控件的动画效果以及Interpolator和AnimationListener的使用
- linux c 多线程编程练习(三)
- 修改iconv源代码,使其支持【JIS X0208保留领域13区】的转码---最终代码
- Reverse a linked list
- mongoose之worker_thread()函数
- android ProgressBar ProgressDialog可以在子线程中更新的原理
- oracle 修改过ip地址或者主机名后服务无法启动的解决办法
- 五、SQL 常用函数
- oracle 11g 从入门到精通 pdf
- 我的歌声里
- fluent将日志转储到多个文件和mongodb