This is a created article in which the information may have evolved or changed.
The project needs to traverse the directory, using Golang's walk function, but there is a strange problem in traversing:
1. An error occurs when the path entered from the console contains Chinese characters;
2. In the IDE debugging, enter the path with Chinese characters, normal;
3. When the Chinese-containing path is written directly into the code, it is normal.
Possible reasons: Golang is using UTF-8 encoding, Windows is using GBK encoding, is the console input path using GBK encoding, program processing is treated as utf-8? No solution ...
Code:
var path stringfmt. PRINTLN ("traversed directory:") fmt. SCANLN (&path) Err: = FilePath. Walk (path, Walkfunc) ...
Solution:
The problem appears in the console input there, which is the code above FMT. SCANLN, in exchange for an input method solved:
Func getinput () string {fmt. Println ("Please enter the directory you need to traverse:") Reader: = Bufio. Newreader (OS. Stdin) Command, _, _: = Reader. ReadLine () return String (command)}