nodejs http.get メソッドを使用してデータをphpに投稿しています
しかし、php の文字セットは UTF-8 ではなく、ISO-8859-9 (トルコ語) です。
投稿データが正しい方法でデータベースに挿入されていないため、
これは私のノードjsファイルです:
var data="ğüşıöç ĞÜŞİÖÇ"
var postdata="isim="+encodeURIComponent(data)+"";
var options2 =
{
host: "localhost",
port: 80,
path: "/bbb.php",
method: 'POST',
headers:{"Host":"localhost","Content-Length": postdata.length,'Content-Type': 'application/x-www-form-urlencoded'}
};
var post_req = http.get(options2, function (res)
{
var responseBody='';
res.on('data', function (d) { responseBody += d; });
res.on('end', function (d)
{
sys.print(responseBody);
});
}).on('error', function (e) {sys.print(e.message);});
post_req.write(postdata);
post_req.end();
これはphpファイルです:
<?
header('Content-type: text/html; charset=ISO-8859-9');
$dbbaglanti=mysql_connect("localhost", "root", "");
mysql_select_db("db");
mysql_query("SET NAMES 'latin5'");
$isim = $_POST["isim"];
mysql_query("insert into deneme (isim) values ('".$isim."')");
?>
データは次のようにデータベースに挿入されています。
しかし、私はphpでこれを行うかどうかを知っています:
$isim = iconv("utf-8","iso-8859-9",$_POST["isim"]);
データは問題なく挿入されています: ğüşıöç ĞÜŞİÖÇ
どうすれば正しい方法でこれを行うことができますか? 私は何度もグーグルで検索しましたが、どうすればこれができるのかわかりません。nodejs用のiconv拡張機能がいくつかあることは知っていますが、それらはWindows用ではなくLinux用です。javascript または nodejs (windows) に iconv のような方法はありますか? またはWindowsの拡張機能ですか?または他の提案はありますか?
php の文字セットを utf-8 に変更するとは言わないでください。php を編集できません。例として localhost を指定しました。