| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 526 人关注过本帖, 1 人收藏
标题:utf-8 和 GB2312 汉字编码方式问题
只看楼主 加入收藏
elesun8
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2014-12-29
结帖率:42.86%
收藏(1)
已结贴  问题点数:2 回复次数:7 
utf-8 和 GB2312 汉字编码方式问题
utf-8 和 GB2312 汉字编码方式问题

我用socket http协议访问map.baidu.com
收到http响应Content-Type: text/xml;charset=utf-8
我把响应的内容char *socket_rec_buff(geo_addr from xml: 重庆市奉节县s201),
fprintf(所在位置:经度%f,纬度%f,地址:%s) write到location.txt
结果location.txt乱码:
所在位置:经度109.53,纬度30.79,地址:閲嶅簡甯傚?鑺傚幙s201
所在位置:经度109.53,纬度30.79,地址:閲嶅簡甯傚?鑺傚幙s201

如何解决汉字编码的问题啊

正确的location.txt应为:
所在位置:经度109.53,纬度30.79,地址:重庆市奉节县s201
所在位置:经度109.53,纬度30.79,地址:重庆市奉节县s201
搜索更多相关主题的帖子: 汉字编码 重庆市 奉节县 write 如何 
2015-01-09 13:30
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <locale.h>

const wchar_t *u8Str = L"重庆市奉节县s201";
char *aStr;

void U8ToA(void) {
    int nLen;
    nLen = WideCharToMultiByte(CP_ACP, 0, u8Str, -1, NULL, 0, NULL, NULL);  

    if(nLen == 0) {
        exit(0);
    }

    aStr = malloc((nLen + 1) * sizeof(char));

    if(aStr) {
        WideCharToMultiByte(CP_ACP, 0, u8Str, -1, aStr, nLen, NULL, NULL);
    } else exit(0);

}

int main(void) {
    wprintf(L"%s\n",u8Str);
    setlocale(LC_CTYPE, "chs");
    wprintf(L"%s\n",u8Str);
    U8ToA();
    puts(aStr);
    setlocale(LC_CTYPE, "");
    puts(aStr);
    free(aStr);
    return 0;
}


[ 本帖最后由 longwu9t 于 2015-1-9 14:19 编辑 ]

Only the Code Tells the Truth             K.I.S.S
2015-01-09 14:18
elesun8
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2014-12-29
收藏
得分:0 
这是什么原理啊
2015-01-09 20:53
elesun8
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2014-12-29
收藏
得分:0 
这段程序代码,能不能在gcc Linux用哦
2015-01-11 09:58
锋了
Rank: 7Rank: 7Rank: 7
来 自:向日葵幼儿园
等 级:黑侠
威 望:2
帖 子:306
专家分:586
注 册:2012-10-27
收藏
得分:0 
回复 4楼 elesun8
2楼给的代码明显是Windows下的啊,你在Linux上肯定不行的。程序你用什么写的,接受web发来的内容出错的吗?如果是的话,Linux下默认是UTF-8的编码,如果web端是你做的话可以将编码方式设置为UTF-8

[ 本帖最后由 锋了 于 2015-1-11 10:53 编辑 ]
2015-01-11 10:50
砖家的谎言
Rank: 12Rank: 12Rank: 12
等 级:禁止访问
威 望:30
帖 子:693
专家分:3898
注 册:2013-12-6
收藏
得分:0 
不是很明白

我不是砖家,要努力成为砖家。
2015-01-11 14:05
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
楼主是美女
2015-01-11 14:20
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:2 
以下是引用elesun8在2015-1-11 09:58:46的发言:

这段程序代码,能不能在gcc Linux用哦

Linux下根本不用写自己写 有个专门的程序是干这个的 iconv 也有相应的库 具体看这个

http://blog.

我没用过iconv的函数写程序 但这个程序我是用过的
2015-01-11 14:24
快速回复:utf-8 和 GB2312 汉字编码方式问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018102 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved