注意to_utf8, from_utf8, cp_to_cp三个函数,使用这些函数,如果先获取缓冲区大小,再分配缓冲区,再执行转换,内部会重复分配、转换、释放两次,这样效率可能比较低。
对于常用的from_utf8(UTF-8转ANSI),目标字符串(ANSI)不可能比源字符串(UTF-8)长,可以执行就地转换。
对于其它情况,如果需要使用堆内存放置结果,则应使用to_utf8_alloc或cp_to_cp_alloc函数,以避免重复分配和释放内存。
对于常用的from_utf8(UTF-8转ANSI),目标字符串(ANSI)不可能比源字符串(UTF-8)长,可以执行就地转换。
对于其它情况,如果需要使用堆内存放置结果,则应使用to_utf8_alloc或cp_to_cp_alloc函数,以避免重复分配和释放内存。