英文:
Escape unicode in golang
问题
我正在尝试读取一个包含Unicode字符的文件,并将其显示为普通字符串:
example.txt
processSpecification=Sp\u00e9cification du processus
materialDomain=Domaine mat\u00e9riel
期望结果:
processSpecification=Spécification du processus
materialDomain=Domaine matériel
实际结果:
processSpecification=Sp\u00e9cification du processus
materialDomain=Domaine mat\u00e9riel
我在Python中找到了如何做到这一点的方法:
使用以下代码可以在5分钟内完成:
for decodedLine in open('Z:\m1msgcatalog\PLMVocabulary_ds6w_fr.properties', 'r', encoding='unicode-escape'):
print(decodedLine)
但是我不知道如何在Go语言中实现这个。
英文:
I'm trying to read a file containing unicode and display it as normal string:
example.txt
processSpecification=Sp\u00e9cification du processus
materialDomain=Domaine mat\u00e9riel
Expected result:
processSpecification=Spécification du processus
materialDomain=Domaine matériel
Actual result:
processSpecification=Sp\u00e9cification du processus
materialDomain=Domaine mat\u00e9riel
I foundhow to do this in 5 min in python :
for decodedLine in open('Z:\m1msgcatalog\PLMVocabulary_ds6w_fr.properties', 'r', encoding='unicode-escape'):
print(decodedLine)
but I don't get how to do this in golang
答案1
得分: 4
或许你可以使用strconv.Unquote
函数?(但要小心...它不仅仅替换\u
序列。)
package main
import (
"fmt"
"strconv"
)
func main() {
input := `processSpecification=Sp\u00e9cification du processus`
fmt.Println(input)
fmt.Println(strconv.Unquote(`"` + input + `"`))
}
// 输出:
// processSpecification=Sp\u00e9cification du processus
// processSpecification=Spécification du processus
https://play.golang.org/p/Uq4vIdNyya
英文:
Perhaps you can use strconv.Unquote
? (But be careful... that does more than just replace \u
sequences.)
package main
import (
"fmt"
"strconv"
)
func main() {
input := `processSpecification=Sp\u00e9cification du processus`
fmt.Println(input)
fmt.Println(strconv.Unquote("\"" + input + "\""))
}
// Output:
// processSpecification=Sp\u00e9cification du processus
// processSpecification=Spécification du processus
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论