In php, ord intercepts Chinese strings and solves garbled characters.

Source: Internet
Author: User
Tags chr ord pack strlen

 

The code is as follows: Copy code

<? Php
// A character
$ Str = (pack ("a *", "China "));
Echo $ str, "=", strlen ($ str), "byte n ";
Getascill ($ str );
// H character
$ Str = (pack ("h *", "fffe "));
Echo $ str, "=", strlen ($ str), "byte n ";
Getascill ($ str );
// C characters
$ Str = (pack ("c *", "55", "56", "57 "));
Echo $ str, "=", strlen ($ str), "byte n ";
Getascill ($ str );

// I character short integer 32-bit 4-byte 64-bit 8-byte
$ Str = (pack ("I", "100 "));
Echo $ str, "=", strlen ($ str), "byte n ";
Getascill ($ str );

// The characters in seconds are short and shaping 2 bytes.
$ Str = (packs ("s", "100 "));
Echo $ str, "=", strlen ($ str), "byte n ";
Getascill ($ str );

// The length of the l character is 4 bytes.
$ Str = (packs ("l", "100 "));
Echo $ str, "=", strlen ($ str), "byte n ";
Getascill ($ str );

// F character single precision floating point 4 bytes
$ Str = (pack ("f", "100 "));
Echo $ str, "=", strlen ($ str), "byte n ";
Getascill ($ str );

// D double precision floating point 8 bytes
$ Str = (pack ("DS", "100 "));
Echo $ str, "=", strlen ($ str), "byte n ";
Getascill ($ str );

Function getascill ($ str)
{
$ Arr = str_split ($ str );
Foreach ($ arr as $ v)
{
Echo $ v, "=", ord ($ v), "n ";
}
Echo "=============== rnrn ";
}
?>

For more details, see: http://www.111cn.net/phper/php-function/php-ord.htm

Instance 2

The code is as follows: Copy code

<?
/*
@ Another method: Use the ord () function:
@ Applicable to gb2312 encoding:
*/
$ Str = "how to display only the first few words in a long news title, which is replaced? ";
Function gb2312_substr ($ str, $ limit ){
$ Restr = '';
For ($ I = 0; $ I <$ limit-3; $ I ++ ){
$ Restr. = ord ($ str [$ I])> 127? $ Str [$ I]. $ str [++ $ I]: $ str [$ I];
}
Return $ restr;
}
/*
@ The following only applies to UTF-8 encoding;
*/
Function utf8_substr ($ str, $ limit ){
$ Restr = '';
For ($ I = 0; $ I <$ limit-3; $ I ++ ){
$ Restr. = ord ($ str [$ I])> 127? $ Str [$ I]. $ str [++ $ I]. $ str [++ $ I]: $ str [$ I];
}
Return $ restr;
}
// Explain the first one above: chr (0) is not null, null is nothing, and chr (0) is 0. The hexadecimal value is 0x00, indicating that the binary value is 00000000. Although chr (0) does not show anything, it is a character. Although chr (0) does not display anything, it is a character. When a Chinese character is truncated, according to the encoding rules, he always needs to pull the other characters behind it as an explanation of the Chinese character. This is the cause of garbled characters.
?>

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.