2012-02-27 128 views
1

我试图向服务器发送笑脸。接收?当笑脸( ue415)发布到服务器

<?xml version="1.0" encoding="UTF-8"?> 
<soapenv:Envelope 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:tem="http://tempuri.org/"> 
<soapenv:Header/> 
<soapenv:Body> 
<tem:PostMessage> 
<tem:UserID>1</tem:UserID> 
<tem:FriendID>3</tem:FriendID> 
<tem:Message>\ue415</tem:Message> 
</tem:PostMessage> 
</soapenv:Body> 
</soapenv:Envelope> 

这是我发布到服务器。但服务器获取消息为。所以其他用户也收到邮件为而不是\ ue415这是笑脸(:D)。

+0

外表[这里](http://stackoverflow.com/q/3569648/971401)。其中一个答案建议直接发送':D'而不是... – 2012-02-27 10:16:30

+0

服务器如何显示文本? (是否是html,你在看调试器,是命令行吗?) – nycynik 2012-02-29 22:51:50

+0

是的,这是调试器。 – Nitish 2012-03-01 09:11:49

回答

1

\ ue415是16位字符代码,但是您的文件指定了UTF-8编码 - 所以您需要将该字符转换为正确的UTF-8序列。据http://www.utf8-chartable.de/unicode-utf8-table.pl?start=58368这是

ee 90 95 

所以,用替换\ ue415 \ XEE \ X90 \ X95如果这是在客户端上正确的格式将工作。如果期望HTML实体,它会是&#xee; &#x90; &#x95;(或类似的东西)。


还有一件事:我刚才发现我看到的表情符号都是UTF-16中的两个字符。事实证明,0xE415是一种旧式的表情符号编码(here's SO贴吧)。在新的Unicode标准表情符号的代码是0x1f604,或UTF-8:

F0 9F 98 84 
+0

什么是** x **在\ xee \ x90 \ x95中?这不起作用。 – Nitish 2012-03-01 04:25:23

+0

另外î  •不起作用。 – Nitish 2012-03-01 04:25:50

+0

对于F0 9F 98 84,要传递的字符串是什么? – Nitish 2012-03-01 04:26:51