如何在golang中将’更改为?

时间:2018-11-15 06:11:46

标签: 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]))
  }
}

输出为:-

O
â


m
a
x

Playground Link

1 个答案:

答案 0 :(得分:1)

您正在挑战unicode问题。问题在于您要遍历字节,但不能遍历字符。同时,您的Unicode字符占用3个字节,这就是为什么要输出该字符。为了正确处理它,您需要使用符文进行迭代,该符文将处理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)

您的完整方案位于Playground

Golang Blog中了解有关符文的更多信息