Unicode 是否将普通空格/空白转换为不间断空格?

Unicode 是否将普通空格/空白转换为不间断空格?,unicode,encoding,character-encoding,go,unicode-string,Unicode,Encoding,Character Encoding,Go,Unicode String,这是一个简单的问题,但我还是不知道怎么做 假设我有这个字符串: x := "this string" “this”和“string”之间的空白默认为常规unicode空白字符32/U+0020。如何将其转换为Go中不间断的unicode空白字符U+00A0?我认为一种基本方法是创建一个简单的函数: 如果你需要更高级的操作,你可以用 "golang.org/x/text/transform" "golang.org/x/text/unicode/norm" 有关如何使用它的更多信息,请阅读使

这是一个简单的问题,但我还是不知道怎么做

假设我有这个字符串:

x := "this string"

“this”和“string”之间的空白默认为常规unicode空白字符
32/U+0020
。如何将其转换为Go中不间断的unicode空白字符
U+00A0

我认为一种基本方法是创建一个简单的函数:

如果你需要更高级的操作,你可以用

"golang.org/x/text/transform"
"golang.org/x/text/unicode/norm"

有关如何使用它的更多信息,请阅读

使用文档将标准
字符串
包确定为可能的候选者,然后搜索它(或者通读所有内容,您应该知道您使用的任何语言的标准库/包中都有哪些内容)以查找

那么,转换任何空白的明显简单解决方案是:

package main

import (
    "fmt"
    "strings"
    "unicode"
)

func main() {
    const nbsp = '\u00A0'
    result := strings.Map(func(r rune) rune {
        if unicode.IsSpace(r) {
            return nbsp
        }
        return r
    }, "this string")

    fmt.Printf("%s → %[1]q\n", result)
}


如前所述,如果您真的只想替换
,那么可能是
字符串。更简单地说,替换

:。不知道特殊字符串([]符文)编码/转换!这很好。或者对于任何空白
字符串。Map
就是您在这里实现的。突然的否决票?我不同意;我认为这是一个有用的问题,特别是因为我花了几个小时在谷歌上试图找到答案,但没有成功。
package main

import (
    "fmt"
    "strings"
    "unicode"
)

func main() {
    const nbsp = '\u00A0'
    result := strings.Map(func(r rune) rune {
        if unicode.IsSpace(r) {
            return nbsp
        }
        return r
    }, "this string")

    fmt.Printf("%s → %[1]q\n", result)
}