将表情符号从 php 网络应用程序传递到 Oracle 数据库和 mysql

passing emojis from php web app into Oracle db and mysql

我们有一个发送短信的 php (codeigniter) 网络应用程序。我们连接的数据库是 oracle。当一些客户试图通过我们的网络应用程序发送表情符号时,表情符号在手机消息中的显示效果不佳 phone。我们可以在 sql plus 中看到表情符号,但在 pl sql 中显示效果不佳。我们假设它与某些编码问题有关,但不能指出确切的问题。

流程就是这样

  1. PHP插入 oracle。
  2. Java 从 oracle 到 mysql.
  3. 插入 mysql。
  4. 作为消息发送到手机 phone。

例如:

这是 php 文本区域中的样子:

这是 PL/SQL 插入 oracle 后的样子:

这是 SQL PLUS 插入 oracle 后的样子:

这就是它在 mysql 中的样子:

并且也在移动 phone 消息中:

mysql和oracle中的charset是utf8mb4

我们尝试将 php 中的查询更改为类似于插入 sms(messaage) 值 (?) 我们尝试将列的类型从 varchar2 更改为 clob

编辑

我认为从 PHP 到 oracle 的连接设置得很好,正如您在此处看到的那样:

我找到了解决办法。 需要将连接字符集从 php 更改为 oracle 以 'AL32UTF8' insted of 'utf8'。 现在效果很好。谢谢