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



------解决思路----------------------
如果你用的是linux g++,那么就要用iconv库,转换下就可以了