Home > Article > Backend Development > Why is my AJAX response XML containing an invisible character with code 65279?
Character 65279: An Invisible Obstacle in PHP Echoing
When exchanging data via AJAX in PHP, developers may encounter an enigmatic issue where the response XML contains an invisible character with a character code of 65279. This character, a Unicode Byte Order Mark (BOM), can cause unexpected behavior when comparing strings or performing other operations.
The Root Cause: Notepad's UTF-8 BOM
Windows Notepad, a commonly used text editor, often adds a BOM when saving files with UTF-8 encoding. This BOM consists of three bytes: EF BB BF. While PHP typically ignores this character, it can cause problems when including one PHP file into another.
Impact on String Comparison
When a file containing a BOM is included, the BOM becomes prepended to all subsequent strings. This can lead to false comparisons, as the character code of 65279 is not a valid character in most programming languages.
Solution 1: Use Notepad 's UTF-8 without BOM Encoding
To avoid the BOM issue, use an alternative text editor such as Notepad , which allows you to save files in UTF-8 without a BOM. Simply choose "Encode in UTF-8 without BOM" from the Encoding menu.
Solution 2: Save Included Files with ANSI Encoding
If you must use notepad, you can also mitigate the problem by saving included PHP files with ANSI encoding. This will result in the removal of the BOM character. However, keep in mind that ANSI encoding may not support extended characters.
The above is the detailed content of Why is my AJAX response XML containing an invisible character with code 65279?. For more information, please follow other related articles on the PHP Chinese website!