실생활에서 사용자가 보낸 콘텐츠에 이모티콘 표현이 포함되어 있는 경우 처리하지 않으면 표시될 때 깨질 수 있는 경우가 종종 있습니다. 따라서 이 기사에서는 PHP WeChat 개발에서 이모티콘 표현과 관련된 여러 처리 방법을 소개합니다. 그것이 모두에게 도움이 되기를 바랍니다.
Background
WeChat 개발을 하다 보면 WeChat 닉네임을 저장하는 것이 필수적이라는 것을 알게 될 것입니다.
근데 사악한 WeChat은 이모티콘 표현을 닉네임으로 지원하는데 좀 아쉽네요
일반적으로 MySQL 테이블을 디자인할 때 UTF8 문자 집합을 사용합니다. 내부에 이모티콘이 포함된 닉네임 필드를 삽입
하면 해당 필드가 사라지고 전체 필드가 빈 문자열이 됩니다. 무슨 일이야? insert
一下就没了,整个字段变成了空字符串。这是怎么回事呢?
原来是因为Mysql的utf8字符集是3字节的,而emoji是4字节,这样整个昵称就无法存储了。这要怎么办呢?我来介绍几种方法
解决方案
1、使用utf8mb4字符集
如果你的mysql版本>=5.5.3
,你大可直接将utf8
直接升级为utf8mb4
字符集
这种4字节的utf8编码可完美兼容旧的3字节utf8字符集,并且可以直接存储emoji表情,是最好的解决方案
至于字节增大带来的性能损耗,我看过一些评测,几乎是可以忽略不计的
2、使用base64编码
如果你因为某些原因无法使用utf8mb4的话,你还可以使用base64
来曲线救国
使用例如base64_encode
Solutions
1. utf8mb4 문자 집합을 사용하세요
mysql 버전이 >=5.5.3
인 경우 utf8을 직접 변경할 수 있습니다. code>는 <code>utf8mb4
문자 집합으로 직접 업그레이드됩니다
이 4바이트 utf8 인코딩은 기존 3바이트 utf8 문자 집합과 완벽하게 호환되며 이모티콘 표현을 직접 저장할 수 있어 최고의 솔루션입니다 바이트 증가로 인한 성능 손실에 대해서는 일부 리뷰를 읽었으며 거의 무시할 수 있습니다
2. base64 인코딩을 사용하세요 어떤 이유로 utf8mb4를 사용할 수 없는 경우 를 사용할 수도 있습니다. base64
로 나라를 구한다
base64_encode
등의 함수를 사용하면 인코딩된 이모지를 utf8 바이트 세트의 데이터 테이블에 직접 저장하고 꺼낼 때 디코딩할 수 있다 이모티콘 표현은 저장해도 완벽하게 표시되지 않을 수 있어 번거로운 작업입니다. PC, Android 등 iOS 이외의 플랫폼에서. 이모티콘을 표시해야 하는 경우 이모티콘 이미지를 많이 준비하고 타사 프런트엔드 라이브러리를 사용해야 합니다. 그럼에도 불구하고 이모티콘 이미지가 충분히 완성되지 않아 표시가 불가능할 수 있습니다. 대부분의 비즈니스 시나리오에서는 이모티콘이 필요하지 않습니다. 적절하게 제거하는 것을 고려하고 다양한 비용을 절약할 수 있습니다🎜🎜🎜🎜🎜How to generate mysql data Dictionary in php 🎜🎜🎜🎜🎜🎜php는 단어 세기 기능을 구현합니다🎜🎜🎜🎜🎜🎜PHP가 바이너리 데이터를 처리하는 방법🎜🎜🎜위 내용은 PHP 프로젝트에서 이모티콘 표현을 사용하는 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!