duanjiao6731 2016-03-08 15:09
浏览 58
已采纳

Go和UTF-8编码-转换是自动的吗?

I am making http requests using Go.

request, err := http.NewRequest("GET", url, nil)

This request, if successful, returns a response.

response, err := client.Do(request)

After receiving a response, I want to save the content.

content, err := ioutil.ReadAll(response.Body)
ioutil.WriteFile(destination, content, 0644)

I looked at the Headers of the responses.

response.Header.Get("Content-Type")

I saw the majority are already UTF-8 encoded, which is good. But there are some that have different encodings. I know Go has built in unicode support. Does that mean that if I write, for example, the content of a big-5 encoded page, it will be automatically converted to utf-8? Or do I need to manually decode using the big-5 encoding and re-encode using utf-8?

Basically, I want to ensure that everything that gets written is utf-8 encoded. What is the best way to achieve this?

Thanks!

  • 写回答

1条回答 默认 最新

  • dongrouyuan5685 2016-03-08 15:32
    关注

    What ioutil.ReadAll reads will be written with ioutil.WriteFile without any conversions whatsoever.

    If you want to force UTF-8 encoded you will have to do the de-/encoding yourself, e.g. with the help of golang.org/x/text/encoding{,/charmap} and/or the unicode/utf{8,16} packages.

    Be prepared for all sorts of ugliness and a lot of pain.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥88 实在没有想法,需要个思路
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)