赞 | 0 |
VIP | 10 |
好人卡 | 49 |
积分 | 10 |
经验 | 22958 |
最后登录 | 2020-8-1 |
在线时间 | 2161 小时 |
Lv3.寻梦者 酱油的
- 梦石
- 0
- 星屑
- 1030
- 在线时间
- 2161 小时
- 注册时间
- 2007-12-22
- 帖子
- 3271
|
本帖最后由 禾西 于 2010-10-10 03:02 编辑
- # Iconv.u2a(string text) => 轉為 ANSI
- # Iconv.a2u(string text) => 轉為 UNICODE
- # Iconv.conv(string code_tpye, string text)
- #// code_tpye :
- #// "u" => 轉為 ANSI
- #// "a" => 轉為 UNICODE
- module Iconv
- CP_ACP = 0
- CP_UTF8 = 65001
- M2W = Win32API.new('kernel32', 'MultiByteToWideChar', 'ilpipi', 'i')
- W2M = Win32API.new('kernel32', 'WideCharToMultiByte', 'ilpipipp', 'i')
- def self.u2a(text)
- n = 0
- i = M2W.call(CP_UTF8, 0 , text, -1,nil,0)
- buf = "\0" * i * 2
- M2W.call(CP_UTF8, 0 , text, -1, buf, i/2)
- i = W2M.call(CP_ACP, 0, buf, -1, nil, 0, nil, nil)
- ret = "\0" * i
- W2M.call(CP_ACP, 0, buf, -1, ret, i, nil, nil)
- return ret
- end
- def self.a2u(text)
- i = M2W.call(CP_ACP, 0, text, -1, nil, 0)
- buf = "\0" * i * 2
- M2W.call(CP_ACP, 0, text, -1, buf, i / 2)
- i = W2M.call(CP_UTF8, 0, buf, -1, nil, 0, nil, nil)
- ret = "\0" * i
- W2M.call(CP_UTF8, 0, buf, -1, ret, i, nil, nil)
- return ret
- end
- def self.conv(convert_2, text)
- case convert_2
- when "u"
- return self.u2a(text)
- when "a"
- return self.a2u(text)
- end
- end
- end
复制代码 |
评分
-
查看全部评分
|