| 赞 | 0 |
| VIP | |
| 好人卡 | |
| 积分 | 3 |
| 经验 | |
| 最后登录 | 2019-10-13 |
| 在线时间 | 953 小时 |
- 梦石
- 0
- 星屑
- 310
- 在线时间
- 953 小时
- 注册时间
- 2007-4-25
- 回帖
- 798
|
发表于 2010-12-9 10:52:23
|
显示全部楼层
回复 赛露休斯 的帖子
RM 里由于是 Ruby 1.8,所以需要自行转码,且不能使用标准库里的 URI 模块。
- m2w = Win32API.new('kernel32', 'MultiByteToWideChar', 'ilpipi', 'i')
- w2m = Win32API.new('kernel32', 'WideCharToMultiByte', 'ilpipipp', 'i')
- str = '字符串'
- len = m2w.call(65001, 0, str, -1, 0, 0) << 1
- str_utf_16 = ' ' * len
- m2w.call(65001, 0, str, -1, str_utf_16, len)
- len = w2m.call(936, 0, str_utf_16, -1, 0, 0, 0, 0) - 1
- str_gb2312 = ' ' * len
- w2m.call(936, 0, str_utf_16, -1, str_gb2312, len, 0, 0)
- res = ''
- str_gb2312.each_byte do |b|
- res << sprintf('%%%02X', b)
- end
- p res
复制代码 |
|