Go 如何更改&x2019;至';在戈兰?

Go 如何更改&x2019;至';在戈兰?,go,Go,假设在csv文件中有1000个用户记录,而在读取该文件时,700个用户的姓氏中有此符号,,我必须使用golang将该符号更改为,。有什么技术或功能可以解决我的问题吗 例如,当我打印这个“时 package main import ( "fmt" ) func main() { strVal := "O’max" for i:= 0; i< len(strVal);i++{ fmt.Println(string(strVal[i])) } } 您正面临unico

假设在csv文件中有1000个用户记录,而在读取该文件时,700个用户的姓氏中有此符号
,我必须使用golang将该符号更改为
。有什么技术或功能可以解决我的问题吗

例如,当我打印这个

package main

import (
  "fmt"
)

func main() {
  strVal := "O’max"
  for i:= 0; i< len(strVal);i++{
    fmt.Println(string(strVal[i]))
  }
}

您正面临unicode问题的挑战。问题是您迭代的是字节,而不是字符。同时,您的unicode字符
需要3个字节,这就是为什么您有这样的输出。为了正确处理它,您需要使用rune进行迭代,它将处理unicode字节

func convert(src string) string {
    var sb strings.Builder

    for _, el := range src {
        if el == '’' {
            sb.WriteString("'")
        } else {
            sb.WriteRune(el)
        }
    }


    return sb.String()
}
然后,你需要转换的地方,你必须打电话

strVal = convert(strVal)
您与的完整场景在中


阅读

中有关符文的更多信息?@tkausl你能写一个小的游乐场示例吗?文档中有一个示例哦,好的@tkausl谢谢。还有其他解决办法吗
strVal = convert(strVal)