Home >Backend Development >PHP Problem >How to convert Chinese symbols to English letters in php

How to convert Chinese symbols to English letters in php

醉折花枝作酒筹
醉折花枝作酒筹Original
2021-06-01 11:47:234315browse

Method: 1. Use the "str_replace()" function, the syntax format is "str_replace('Chinese symbol', 'English symbol', string)"; 2. Use regular replacement, when the character length is greater than 65280 , when it is less than 65375, just subtract 65248 from the character length.

How to convert Chinese symbols to English letters in php

The operating environment of this tutorial: windows7 system, PHP7.1 version, DELL G3 computer

Simple replacement of str_replace()

The difference between regular replacements is 65248

Method one: simple replacement (php code)

$val1=str_replace(',',',',$val1);
$val1=str_replace('(','(',$val1); 
$val1=str_replace(')',')',$val1);

Method two: all character replacement (regular replacement)

for (int i = 0; i < c.Length; i++)
{
if (c[i]==12288)
{
c[i]= (char)32; continue;
}
if (c[i]>65280 && c[i]<65375)
c[i]=(char)(c[i]-65248);
}

1. What is the corresponding relationship between half-width symbols and full-width symbols?

The difference is 65248
///全角空格为12288,半角空格为32
///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 ///

2. Replace Chinese punctuation marks with English punctuation marks

Simple replacement (php code)

$val1=str_replace(&#39;,&#39;,&#39;,&#39;,$val1);
$val1=str_replace(&#39;(&#39;,&#39;(&#39;,$val1);
$val1=str_replace(&#39;)&#39;,&#39;)&#39;,$val1);
/// 转全角的函数(SBC case) ///
///任意字符串 
/// 全角字符串 ///
///全角空格为12288,半角空格为32
///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 ///
 
public string ToSBC(string input)
{ //半角转全角:
    char[] c=input.ToCharArray();
      for (int i = 0; i < c.Length; i++)
    {
       if (c[i]==32)
    {
    c[i]=(char)12288; continue;
  }
   if (c[i]<127) c[i]=(char)(c[i]+65248);
   }
return new string(c);
}
 
/// /// 转半角的函数(DBC case) ///
///任意字符串
/// 半角字符串 ///
///全角空格为12288,半角空格为32
///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 ///
public string ToDBC(string input)
{
char[] c=input.ToCharArray();
for (int i = 0; i < c.Length; i++)
{
if (c[i]==12288)
{
c[i]= (char)32; continue;
}
if (c[i]>65280 && c[i]<65375)
c[i]=(char)(c[i]-65248);
}
return new string(c);
}

Recommended: "2021 PHP interview questions summary (collection)" "php video tutorial

The above is the detailed content of How to convert Chinese symbols to English letters in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn