首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >char (chinese )以php格式转换为十六进制格式

char (chinese )以php格式转换为十六进制格式
EN

Stack Overflow用户
提问于 2014-03-27 05:20:36
回答 1查看 1.2K关注 0票数 0

我要把我的消息传递给SMS api,

这是文件

通常,Unicode消息是由GSM标准定义的阿拉伯文和中文消息。Unicode消息只是普通的文本类型消息,但必须以HEX形式提交。若要在要使用的Url之后提交Unicode消息,请执行以下操作。

我试过bin2hex(),那里没有输出的工作。

代码语言:javascript
复制
$str = '人';
//$str = 'a';

$output = bin2hex($str);
echo $output; 

//output
//人 = e4baba ; I would expect '4EBA'

我找到了一个类似的解决方案,但是在VB.net中,任何人都可以转换它?http://www.supportchain.com/index.php?/Knowledgebase/Article/View/28/7/unable-to-send-sms-with-chinese-character-using-api

我试过的样本,就是工作:-

转换示例:转换为十六进制的为0061,转换为十六进制的人为4 4EBA。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-27 05:55:48

您所面临的问题与编码有关。由于这些字符被认为是特殊字符,所以在转换为十六进制时需要添加一些编码细节。

这些输出中的每一个都与我运行它们时所寻找的完全相同:

代码语言:javascript
复制
echo bin2hex(iconv('UTF-8', 'ISO-10646-UCS-2', '人')) . PHP_EOL;
//Outputs 4eba

echo bin2hex(iconv('UTF-8', 'UNICODE-1-1', '人')) . PHP_EOL;
//Outputs 4eba

echo bin2hex(iconv('UTF-8', 'UTF-16BE', '人')) . PHP_EOL;
//Outputs 4eba

选一个你喜欢的。

如果您想要转换回:

代码语言:javascript
复制
echo iconv('UTF-16BE', 'UTF-8', hex2bin('4eba')) . PHP_EOL;
//outputs 人
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22678900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档