Golang : convert rune to unicode hexadecimal value and back to rune character
There are times when we need to convert a rune to unicode hexadecimal style for storage purpose, encryption, manipulation and etc. Below is a short example on how to convert a rune to unicode hexadecimal value and how to convert unicode hexadecimal value back to rune character.
package main
import (
"fmt"
"strconv"
)
func main() {
// translate character to rune
r := rune('黄')
// extra the unicode \uxxxx value
unicode := strconv.QuoteRuneToASCII(r)
fmt.Println(string(r) + " unicode hex value is : ", unicode)
// convert back unicode to rune
// this WILL NOT work, it just prints out the unicode string
fmt.Println("\"\\u" + unicode[3:len(unicode)-1] + "\"")
// strangely, this will work
fmt.Println("\u9ec4")
// therefore, to convert a unicode back to rune
// use strconv.Unquote
char, _ := strconv.Unquote(unicode)
fmt.Println(unicode + " rune character is : ", char)
}
Output :
黄 unicode hex value is : '\u9ec4'
"\u9ec4"
黄
'\u9ec4' rune character is : 黄
Hope you may find this short tutorial useful in dealing with unicode and rune.
Reference :
By Adam Ng
IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.
Advertisement
Tutorials
+19k Golang : How to force compile or remove object files first before rebuild?
+16.4k Convert JSON to CSV in Golang
+5.5k Golang : How to determine if request or crawl is from Google robots
+5.9k Golang : How to call function inside template with template.FuncMap
+9.8k Golang : Removes punctuation or defined delimiter from the user's input
+17.2k Golang : Read binary file into memory
+21.5k Golang : Get ASCII code from a key press(cross-platform) example
+5.1k Golang : Debug with Godebug
+8k Golang : Serving HTTP and Websocket from different ports in a program example
+9.1k Golang : cannot assign type int to value (type uint8) in range error
+7.1k Golang : Number guessing game with user input verification example
+18.3k Golang : Check if os.Stdin input data is piped or from terminal