2016-04-11 8 views
0

私はチャットアプリを構築していて、絵文字画像を送受信する必要があります。私は、データをポストするには、次のコードを使用します。私のアプリには1つの絵文字画像しか表示されません

let myUrl = NSURL(string: "http://test.php") 
let request = NSMutableURLRequest(URL:myUrl!) 
request.HTTPMethod = "POST"  
let postString = " shareImageMessage=\(message)" 
request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding) 

次のように私はデバッグ領域にemojiesとの私のメッセージを見ることができます:

Debug area output

しかし、mysqlデータベース内のみ、次の画像の表示:

mysql screenshot

phpスクリプトの次のコード:

$shareImageMessage = $_POST["shareImageMessage"]; 

1種類の画像しか転送できない理由を理解できませんでした。

+0

データベース絵文字の事を修正について詳しくは、質問を参照することができ、データベースの列が絵文字をサポートしていることを確認してくださいデータベース。 –

+0

外部データベースの問題がiOSかSwift関連のいずれであるかわかりません... PHPスクリプトが受け取ったものをデバッグしましたか? – holex

+0

レンダリングに問題がある可能性があります。出力を印刷する場所に、他の絵文字の正しいレンダリングがない可能性があります。 – Pankaj

答えて

0

同じURLに複数の絵文字を送信するには、サーバーに送信する文字列をbase64に変換し、データベースのもう一方の端でデコードします。文字列をBase64にエンコードしてデコードするには、Convert between UIImage and Base64 stringをチェックしてください。 :)

0

SWIFT:

func base64encode(message: NSString)->String{ 
    let plainData = message.dataUsingEncoding(NSUTF8StringEncoding) 
    return plainData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.fromRaw(0))! 
} 

用法:そうのようにbase64でメッセージをエンコードするPHPで、その後let msgToPost = base64encode("born to be encoded ")

ちょうどこのコードは私のために完全に働いた

$decodedmsg = base64_decode($str);有名を使用

もう1つ.. は、あなたが実際にデータを挿入するために使用しているコードを表示する必要がありますが

How to insert utf-8 mb4 character(emoji in ios5) in mysql?

+0

関数がXcodeによって次の形式に変更され、絵文字をポストしません。return plainData!.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue:0)) – OzzY

+0

MySQLのバージョンは5.0です。私はalter tableコマンドを試しましたが、次のエラー "#1115 - Unknown character set: 'utf8mb4'"が発生しました。また、[照合順序]ドロップダウンメニューにutf8mb4オプションはありません。私はそれがMySQLのバージョンと関連していると思う。 – OzzY

+0

私はutf8mb4を使うためにバージョン5.5が必須であると思います –

関連する問題