1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
package main
import (
"bufio"
"fmt"
"log"
"os"
"golang.org/x/text/encoding/charmap"
"golang.org/x/text/transform"
)
func main() {
const filenameUTF8 = "test_in_utf8.txt"
readFile(filenameUTF8, false)
const filename = "test_in.txt"
readFile(filename, true)
}
func readFile(filename string, convertToUTF8 bool) {
// Read UTF-8
f, err := os.Open(filename)
if err != nil {
log.Fatal(err)
}
var sc *bufio.Scanner
if convertToUTF8 {
// Pour lire fichier ANSI
var enc = charmap.Windows1252
r := transform.NewReader(f, enc.NewDecoder()) // convert file format
sc = bufio.NewScanner(r)
fmt.Printf("Read mode %s\n", "ANSI")
} else {
// Pour lire fichier UTF8
sc = bufio.NewScanner(f)
fmt.Printf("Read mode %s\n", "UTF8")
}
for sc.Scan() {
fmt.Printf("Read line: %s\n", sc.Bytes())
}
if err = sc.Err(); err != nil {
log.Fatal(err)
}
if err = f.Close(); err != nil {
log.Fatal(err)
}
} |
Partager