Windows クライアント ソフトウェアから http POST パッケージを受け取る php スクリプトを作成しました。
Windows クライアントは、C++ 用の「 WinHttpClient 」を使用します。
WinHttpClient は、送信したメッセージを wchar_t として受け取ります。
問題は、PHP ファイルでメッセージを受信することですが、"®" 記号のようないくつかの記号が "®" として表示されることです。
私の知る限り、クライアントの文字セットを utf-8 などに変更することはできません。しかし、ここにいる何人かの人々は、ワイド文字を PHP が正常に動作する utf8 に「変換」する方法を知っているかもしれません。utf-8でのみ実行されるデータベースにデータを永続化する必要があるためです。
以下で試してみましたが、変わりません:(
function ewchar_to_utf8($matches) {
$ewchar = $matches[1];
$binwchar = hexdec($ewchar);
$wchar = chr(($binwchar >> 8) & 0xFF) . chr(($binwchar) & 0xFF);
return iconv("unicodebig", "utf-8", $wchar);
}
function special_unicode_to_utf8($str) {
return preg_replace_callback("/\\\u([[:xdigit:]]{4})/i", "ewchar_to_utf8", $str);
}
多分あなたはいくつかのアイデアを持っています:)ありがとう