1. // 初始化文件输入流
    2. tb_stream_ref_t istream = tb_stream_init_from_url("/home/utf8.txt");
    3.  
    4. // 初始化文件输出流
    5. tb_stream_ref_t ostream = tb_stream_init_from_file("/home/gbk.txt", TB_FILE_MODE_RW | TB_FILE_MODE_CREAT | TB_FILE_MODE_BINARY | TB_FILE_MODE_TRUNC);
    6.  
    7. /* 初始化字符集编码流, 以istream作为输入, utf8 => gbk
    8. *
    9. * 目前支持的所有字符集编码格式:
    10. *
    11. * TB_CHARSET_TYPE_ASCII
    12. * TB_CHARSET_TYPE_GB2312
    13. * TB_CHARSET_TYPE_GBK
    14. * TB_CHARSET_TYPE_ISO8859
    15. * TB_CHARSET_TYPE_UCS2
    16. * TB_CHARSET_TYPE_UCS4
    17. * TB_CHARSET_TYPE_UTF16
    18. * TB_CHARSET_TYPE_UTF32
    19. * TB_CHARSET_TYPE_UTF8
    20. *
    21. * 注:针对多字节的编码格式,例如usc4, utf16, .. 默认转换用的是 大端格式
    22. * 如果想要支持小端格式、本地端格式的数据, 可以传入:
    23. *
    24. * 小端格式数据: TB_CHARSET_TYPE_GBK | TB_CHARSET_TYPE_LE
    25. *
    26. * 本地端格式数据: TB_CHARSET_TYPE_UTF32 | TB_CHARSET_TYPE_NE
    27. */
    28. tb_stream_ref_t fstream = tb_stream_init_filter_from_charset(istream, TB_CHARSET_TYPE_UTF8, TB_CHARSET_TYPE_GBK);
    29.  
    30. // 进行流编码
    31. if (istream && ostream && fstream)
    32. {
    33. tb_hong_t save = tb_transfer_done(fstream, ostream, 0, tb_null, tb_null);
    34. }
    35.  
    36. // 释放流数据
    37. if (fstream) tb_stream_exit(fstream);
    38. if (istream) tb_stream_exit(istream);
    39. if (ostream) tb_stream_exit(ostream);