Home > Article > Backend Development > How to solve the Chinese garbled Chinese characters exported by php excel reader?
Methods to solve Chinese garbled characters exported by php excel reader: 1. If you do not use the dump function, you can solve the problem by modifying the [_defaultEncoding] variable; 2. If you use the dump function to export excel, you need to modify the htmlentities function to solve the problem.
How to solve the Chinese garbled code exported by php excel reader:
After downloading php excel reader2.21 , please unzip it to the running directory of your PHP environment configuration, open example.php, first look at
1$data=new Spreadsheet_Excel_Reader("example.xls");
This statement is used to create an instance of php exporting excel. In the excel_reader2.php file we can Find the constructor prototype of this php excel reader class
Spreadsheet_Excel_Reader($file='',$store_extended_info=true,$outputEncoding='')
As the name suggests, the encoding type of the excel file content exported by php excel reader is specified through the $outputEncoding
parameter. The default php excel reader exports The encoding type of excel is set through the variable _defaultEncoding
, and the default is UTF-8. Therefore, there are usually two methods to solve the problem of php excel reader exporting excel Chinese garbled characters.
php excel reader export excel Chinese garbled solution one solution:
1$data=new Spreadsheet_Excel_Reader("example.xls");
is changed to
1$data=new Spreadsheet_Excel_Reader("example.xls",true,"GB2312");
php excel reader export excel Chinese garbled solution Method 2:
Open excel_reader2.php, find
1var$_defaultEncoding="UTF-8";
and change it to
1var$_defaultEncoding="GB2312";
to solve the problem of php excel reader exporting excel with garbled characters.
Then why does example.php still output garbled characters after adding Chinese to example.xls after modification through the above tutorial?
This is because it calls the dump
function in the php excel reader class. This function is used to output the contents of the exported excel file in the form of HTML, and the problem is precisely due to this The htmlentities function in the function is causing trouble. The htmlentities function is used to convert characters into HTML entities. The prototype is as follows
htmlentities(string,quotestyle,character-set)
The default character set is ISO-8859-1, so when using the dump function of php excel reader to export When Chinese garbled characters appear in excel,
Solution 1: Change
1$val=htmlentities($val);
to
1$val=htmlentities($val,ENT_COMPAT,"GB2312");
Solution 2:
1$val=htmlentities($val);
modified to
1$val=htmlspecialchars($val);
php excel reader export excel Chinese garbled solution summary
If you do not use the dump function to export excel, you can modify it _defaultEncoding
variable or through new Spreadsheet_Excel_Reader(excel file name, true, "GB2312"); to solve the problem of garbled characters in exported excel. If you use the dump function to export excel in HTML, you need to modify the htmlentities function to solve the problem of garbled characters in exported excel.
Related learning recommendations: PHP programming from entry to proficiency
The above is the detailed content of How to solve the Chinese garbled Chinese characters exported by php excel reader?. For more information, please follow other related articles on the PHP Chinese website!