Here it is without the combining character: https://play.golang.org/p/1bgIkIbFei
Ranging over a string iterates the code points within. For...range is unaware of combining characters; they are a higher-level concept. The package described at https://godoc.org/golang.org/x/text/unicode/norm might be of interest. -rob On Wed, Jul 6, 2016 at 7:48 AM, Egon <egonel...@gmail.com> wrote: > > > On Wednesday, 6 July 2016 17:31:06 UTC+3, gary.wi...@victoriaplumb.com > wrote: >> >> I have a little snippet here which iterates over a string. >> >> package main >> >> import "fmt" >> >> func main() { >> >> text := "Noël" >> >> for _, rune_ := range text { >> fmt.Printf("%#U\n", rune_) >> } >> } >> >> Playground: https://play.golang.org/p/bVfXB2crKo >> >> The output is not correct because it breaks the 'e' from the diaeresis ' >> *¨*'. >> >> Without normalisation (because it doesn't work with all code points), is >> there any way of iterating over this string by grapheme to output each as a >> fully formed readable character? >> > > I'm not an expert in this area, but combing characters belong to mark > category: https://play.golang.org/p/2X8xc9sijY > > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.