我试图在mysql数据库中保存表情符号。在android中它显示正常,但是当我在数据库中保存表情符号时,我得到了#34; ????"。我知道commons-lang-2.5.jar
库,我可以使用StringEscapeUtils.escapeJava(String text)
和StringEscapeUtils.unescapeJava(String text)
来编码和解码表情符号。
但Android和iOS客户端使用相同的服务器,如果我在Android上使用commons-lang-2.5.jar
,那么iOS将无法解码。在相关的说明中,iOS保存并显示表情符号。
如果Android和iOS在在线模式下被覆盖(跨socket.io
),Android和iOS客户端会正确显示表情符号,但如果我从聊天服务器请求历史记录,则存储在服务器上的表情符号将显示为???
,就像在Android上一样。
更新
简单示例:
comment = etxtComment.getText().toString().trim();
new SubmitCommentsOnlyChat(comment).execute();
class SubmitCommentsOnlyChat extends AsyncTask<Void, String, Boolean> {
String message;
SubmitCommentsOnlyChat(String message) {
this.message = message;
}
@Override
protected Boolean doInBackground(Void... params) {
// TODO Auto-generated method stub
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(
"url");
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(5);
nameValuePairs
.add(new BasicNameValuePair(
GlobalConfig.CHAT_ONLY_MESSAGE,
message));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8"));