iconv python

#encoding: gbk

from ctypes import *

iconv = cdll.libiconv2

 

print(iconv)

def lst(cnt, names, data):

    print("COUNT:", cnt)

    for i in range(cnt):

        print(names[i])

 

cb = CFUNCTYPE(None, c_int, POINTER(c_char_p), c_void_p)(lst)

iconv.libiconvlist(cb, 0)

h = iconv.libiconv_open(b"GBK", b"UCS-2LE")

print("HANDLE:", h)

buf = c_buffer(1024)

wbuf = (c_wchar*1024)()

wbuf.value = "中文字符串,测试ICONV用"

la = c_int(24)

lw = c_int(len(wbuf.value) * 2)

lpwbuf = POINTER(c_wchar_p)(cast(wbuf, c_wchar_p))

lpbuf = POINTER(c_char_p)(cast(buf, c_char_p))

iconv.libiconv(h, lpwbuf, byref(lw), lpbuf, byref(la))

print("INPUT LEFT:", lw.value)

print("OUTPUT LEFT:", la.value)

print("OUTPUT LEN:", len(buf.value))

print(buf.value.decode("gbk"))

iconv.libiconv_close(h)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值