It might be enough for you to just check for combining characters, something like https://play.golang.org/p/-eKwUWTHV0. (I think there's Mc and Me and then other grapheme considerations beyond combining characters, but this may be all you need.)
On Wednesday, July 6, 2016 at 3:19:56 PM UTC, gary.wi...@victoriaplumb.com wrote: > > Thanks. > > Though I understand what is happening, I wondered if Go includes ways to > handle such text at the grapheme level? I only see libraries aimed at the > code point level. > > On Wednesday, 6 July 2016 15:59:30 UTC+1, Rob 'Commander' Pike wrote: >> >> 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 <egon...@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...@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.