- 论坛徽章:
- 0
|
另外一个问题:- #include <stdio.h>
- #include <string.h>
- #include <iconv.h>
- #define OUTLEN 255
- int main(void)
- {
- char *in_utf8 = "娴嬭瘯绋嬪簭";
- char out[OUTLEN];
- char out1[OUTLEN];
- u2g(in_utf8, strlen(in_utf8), out, OUTLEN);
- g2u(out, strlen(out), out1, OUTLEN);
-
- printf("utf8-->gb2312: %s\n", out);
- printf("gb2312-->utf8: %s\n", out1);
- return 0;
- }
- int code_convert(char *from_charset, char *to_charset, char *in_buf, int in_len, char *out_buf, int out_len)
- {
- iconv_t tl;
- tl = iconv_open(to_charset, from_charset);
- if(tl == 0)
- {
- return -1;
- }
- memset(out_buf, 0, out_len);
- if(iconv(tl, &in_buf, &in_len, &out_buf, &out_len) < 0)
- {
- return -1;
- }
- iconv_close(tl);
- return 0;
- }
- int u2g(char *in_buf, int in_len, char *out_buf, int out_len)
- {
- return code_convert("UTF-8", "GB2312", in_buf, in_len, out_buf, out_len);
- }
- int g2u(char *in_buf, int in_len, char *out_buf, int out_len)
- {
- return code_convert("GB2312", "UTF-8", in_buf, in_len, out_buf, out_len);
- }
复制代码 由于程序是在Linux下写的。而我打开是在window下,所以其中中文会变成乱码。
当我在宿主机上利用GCC编译好后,运行这段代码,没有任何问题。
但当我在开发板(minicom)中运行时,却无显示:
这个是为什么呢?会不会与缓冲方式有关? |
|