Home >Backend Development >PHP Problem >How many bytes does a Chinese character in php have?
Introduction to
## characters:
In js, Chinese occupies two characters and English occupies one character; in In php, different encodings are different. In the GBK/GB2312 encoding, a Chinese character occupies 2 characters, and in UTF-8/unicode encoding, a Chinese character occupies 3 characters; Recommended: "PHP Tutorial 》
php bytes and characters
In php, under UTF-8 encoding, a Chinese character occupies 3 bytes, and under gbk encoding, it only occupies 2 byte.zìfú (Character)
Characters are abstract entities that can be represented using many different character schemes or code pages. For example, Unicode UTF-16 encoding represents characters as a sequence of 16-bit integers, while Unicode UTF-8 encoding represents the same characters as a sequence of 8-bit bytes. The common language runtime uses Unicode UTF-16 (Unicode Transformation Format, a 16-bit encoding) to represent characters. Applications targeting the common language runtime use encodings to map character table forms from the native character scheme to other schemes. Applications use decoding to map characters from non-native schemes to native schemes.zìjié (byte)
Byte (Byte): Byte is the unit of transmitting information over the network (or storing information on the hard disk or memory). An English letter (not case sensitive) occupies one byte of space, and a Chinese character occupies two bytes of space. Symbols: English punctuation occupies one byte, Chinese punctuation occupies two bytes. A binary number sequence, used as a digital unit in the computer, is generally an 8-bit binary number. For example, an ASCII code is a byte. The conversion of such units is: The key to understanding encoding is to accurately understand the concepts of characters and bytes. These two concepts are easily confused, so we will make a distinction here: Concept description ExampleCharacter A mark used by people, a symbol in an abstract sense. '1', '中', 'a', '$', '¥', ……byte is a unit for storing data in a computer, an 8-bit binary number, which is a very specific storage space. 0x01, 0x45, 0xFA, ……ANSIThe string is in memory. If the "character" exists in ANSI encoding, one character may use one byte or multiple words. section, then we call this string an ANSI string or a multi-byte string. "Chinese 123" (occupies 7 bytes)UNICODEThe string is in memory. If the "character" exists as the serial number in UNICODE, then We call this kind of string a UNICODE string or a wide-byte string. L"中文123"(occupies 10 bytes)Since the standards specified by different ANSI encodings are different, therefore, for a given multi-byte string, we You must know which encoding rule it uses to know which "characters" it contains. For UNICODE strings, no matter what the environment, the "character" content it represents is always the same.The above is the detailed content of How many bytes does a Chinese character in php have?. For more information, please follow other related articles on the PHP Chinese website!