emoji - php界iconv编码疑云!
输入 ?
<code>$str=json_encode($str); $str=preg_replace('#(\\\ud[0-9a-f]{3}|\\\u2(6|7)[0-9a-f]{2})#ie','addslashes("\\1")',$str); $str=json_decode($str);</code>
输出 \ud83d\udc38
那么 问题来了!!!
\ud83d\udc38
应该经过怎样的处理得到 🐸
下面是我写的处理,但是不能输出我想要的数值,iconv("UCS-2","UTF-8",pack("H4","\\1")) 不起作用有时得到乱码。
<code>$str=preg_replace('#(\\\u[0-9a-f]{4}\\\u[0-9a-f]{4})#ie','iconv("UCS-2","UTF-8",pack("H4","\\1"))',$str);</code>
更改mysql的数据类型这个方案不能考虑
我完整的需求是这样的:
1、我输入一段话 例如 “一二三四五上山打老虎?”,我在保存进mysql时,需要将?转换成能写进mysql的编码,但是“一二三四五上山打老虎”这部分我需要原文存进数据库,这里就需要对输入的文本进行的正则过滤,然后将?转码,其他正常符号中英文不转码。
2、从数据库输出数据时,我用正则匹配出?的转码,将其输出为?和(🐸
或0x1f438
),因为我在前端显示的静态的图片表示?,图片的来源于twitter的emoji库,图片的名称就是以1f438
命名的。
完整的需求就是这样的。求大神指点下。
回复内容:
输入 ?
<code>$str=json_encode($str); $str=preg_replace('#(\\\ud[0-9a-f]{3}|\\\u2(6|7)[0-9a-f]{2})#ie','addslashes("\\1")',$str); $str=json_decode($str);</code>
输出 \ud83d\udc38
那么 问题来了!!!
\ud83d\udc38
应该经过怎样的处理得到 🐸
下面是我写的处理,但是不能输出我想要的数值,iconv("UCS-2","UTF-8",pack("H4","\\1")) 不起作用有时得到乱码。
<code>$str=preg_replace('#(\\\u[0-9a-f]{4}\\\u[0-9a-f]{4})#ie','iconv("UCS-2","UTF-8",pack("H4","\\1"))',$str);</code>
更改mysql的数据类型这个方案不能考虑
我完整的需求是这样的:
1、我输入一段话 例如 “一二三四五上山打老虎?”,我在保存进mysql时,需要将?转换成能写进mysql的编码,但是“一二三四五上山打老虎”这部分我需要原文存进数据库,这里就需要对输入的文本进行的正则过滤,然后将?转码,其他正常符号中英文不转码。
2、从数据库输出数据时,我用正则匹配出?的转码,将其输出为?和(🐸
或0x1f438
),因为我在前端显示的静态的图片表示?,图片的来源于twitter的emoji库,图片的名称就是以1f438
命名的。
完整的需求就是这样的。求大神指点下。
? 的unicode 是 0x1f438,无法用两字节的 UCS-2 编码,用 UCS-4 可以。
大概是这么个思路:
<code><?php function uniord($u) { $k = mb_convert_encoding($u, 'UCS-4LE', 'UTF-8'); $k1 = ord(substr($k, 0, 1)); $k2 = ord(substr($k, 1, 1)); $k3 = ord(substr($k, 2, 1)); return $k3 * 256 * 256 + $k2 * 256 + $k1; } echo uniord('?');</code></code>
用mb,
iconv纯属扯淡
在线等 哼哼

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.
