假设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
答案 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中了解有关符文的更多信息