The online solution says to use iconv() to transcode after crawling. After reading it, I felt something was wrong: one is that the iconv library may not have been compiled, and the bigger problem is that the encoding is related to the stream conversion (if iconv is used, PHP actually converts the code twice: stream-> UTF-8 -> GB2312): Isn’t this busy work in vain?
Read the php documentation carefully (I don’t know how everyone writes code, but the documentation is very clear). It is mentioned above about fopen() and file_get_contents() that "the default is UTF-8, but users can If unicode semantics are enabled, the default encoding of the read data is UTF-8. You can specify a different encoding by creating a custom context or by changing the default using stream_default_encoding ().). So I used stream_default_encoding('gb2312′); to test: But faintly, this function does not exist? ! It seems that php 6 only supports it. However, there is no sure path, and there are also "user-defined context attributes" that can be used.
After reading the document more carefully, I finally solved this problem:
The code is as follows:
//Set the encoding format of the stream. This is the file stream (file). If it is network access, change the file to http
$opts = array('file' => array('encoding' => 'gb2312')); $ctxt = stream_context_create($opts); file_get_contents(文件名, FILE_TEXT, $ctxt);
The above introduces the problem that World of Warcraft cannot read the required files and php reads garbled files, including the content that World of Warcraft cannot read the required files. I hope it will be helpful to friends who are interested in PHP tutorials.