Current Location: Home> Latest Articles> PHP String Encoding Handling Guide: Detection, Conversion, and Fixing Garbled Text

PHP String Encoding Handling Guide: Detection, Conversion, and Fixing Garbled Text

gitbox 2025-06-15

How to Operate and Handle String Data Type Encoding in PHP

In PHP development, strings are one of the most commonly used data types, and character encoding directly affects how strings are displayed and stored. This article will introduce the basics of string encoding in PHP, commonly used functions, and solutions to common problems, helping you master string encoding operations effectively.

1. Basic Concept of Character Encoding

Character encoding is a standard method of mapping characters to binary data. Common encodings include ASCII, UTF-8, and Unicode. Different encoding methods determine how characters are stored and displayed. Correct encoding prevents garbled text and display issues, which is especially important in multilingual environments.

2. Detecting the Encoding of a String

PHP provides the mb_detect_encoding() function to detect the character encoding of a string. Example code:

$str = "你好";
$encoding = mb_detect_encoding($str);
echo "String encoding: " . $encoding;

The output may be UTF-8, GB2312, etc. You can handle the string accordingly based on the detected encoding.

3. Converting String Encoding

To ensure compatibility across different systems, it’s often necessary to convert string encoding. The mb_convert_encoding() function in PHP allows easy encoding conversion. Example:

$str = "你好";
$encoding = mb_detect_encoding($str);
$str_utf8 = mb_convert_encoding($str, "UTF-8", $encoding);
echo "Converted string: " . $str_utf8;

This ensures the string displays correctly in various environments.

4. Fixing Chinese Garbled Text

Garbled Chinese characters are a common problem in PHP development, usually caused by encoding mismatches. You can avoid garbled text by adding the following at the beginning of your PHP script:

header('Content-Type:text/html; charset=UTF-8');

Also, set the character set for your database connection to avoid garbled text when storing or retrieving Chinese data:

mysqli_set_charset($con, "utf8");

Here, $con is a valid MySQL connection object.

5. Handling Special Characters

Strings often contain HTML entities or need URL encoding. PHP provides built-in functions to handle these cases, for example:

$encoded_str = "<p>Hello</p>";
$decoded_str = html_entity_decode($encoded_str);
echo "Decoded string: " . $decoded_str;

For URL encoding, use:

$str = "hello world";
$encoded_str = urlencode($str);
echo "URL encoded string: " . $encoded_str;

These functions make string processing more flexible and safe.

Summary

This article introduced the basics of string encoding in PHP, including detecting encoding, converting encodings, fixing Chinese garbled text, and handling special characters. Mastering these topics can improve the accuracy and compatibility of string processing and support more reliable development.