15 lines
349 B
Plaintext
15 lines
349 B
Plaintext
func utf8_encoder(Number code) {
|
|
code.chr.encode('UTF-8').bytes.map{.chr}
|
|
}
|
|
|
|
func utf8_decoder(Array bytes) {
|
|
bytes.map{.ord}.decode('UTF-8')
|
|
}
|
|
|
|
for n in ([0x0041, 0x00F6, 0x0416, 0x20AC, 0x1D11E]) {
|
|
var encoded = utf8_encoder(n)
|
|
var decoded = utf8_decoder(encoded)
|
|
assert_eq(n, decoded.ord)
|
|
say "#{decoded} -> #{encoded}"
|
|
}
|