0

ここにfirebugからの私のデータがあります

action=saveOrder&name=Aprova%C3%A7%C3%A3o+dos

サーバー側でデータベースに保存しようとしていますが、名前列には照合があります-utf8_general_ci

これが私のphpスクリプト1です。

$name= htmlentities(str_replace("+", " ", rawurldecode($_POST["name"])));

2もやってみた。

$name= html_entity_decode(str_replace("+", " ", rawurldecode($_POST["name"])));

このリンクが表示 された場合http://writecodeonline.com/php/ 2. ピースはそこで機能しますが、データベースに保存すると、最後のコードピースで適切に保存されません保存される値は Aprovação dos ですケース 1 の場合、この Aprovação dos が保存されます

データベースに保存される値は、Aprovação dos です。

関数 saveorders()
{
  var params={};
  params.action='saveOrder';
  params.name=$("#cliente_nome").val();
  $.post('saveorders.php',params,function(データ)
  {
    アラート (データ);
  });
}

PHPコード

 <?php

  mb_internal_encoding("UTF-8");
  include_once ("clase.php");// データベース接続ファイル
  session_start();
  $name=html_entity_decode(str_replace("+", " ", rawurldecode($_POST["name"])));
  ポリシー::saveOrders($name);

  ?>

どんな助けでも大歓迎

4

3 に答える 3

1

Web サイトとデータベース間のリンクを作成するときは、UTF-8 に設定します。また、ANSI を使用して、PHP ページを UTF-8 (BOM なしの UTF-8 エンコーディング) として保存します。データベースとテーブルも UTF-8 エンコーディングを使用していることを確認してください。php の内部エンコーディングを UTF-8 に設定します。

于 2012-05-29T20:48:37.567 に答える
0

ファイルエンコーディング(.phpファイル自体)がUTF-8であることを確認してください。

また、header('Content-Type:text / html; charset = UTF-8');を追加します。UTF-8ページに移動して、それが役立つかどうかを確認します。

于 2012-05-29T21:21:48.223 に答える
0

これを解決するために私が取った手順は次のとおりです

  1. データベース テーブルの照合を utf8_general_ci に設定します
  2. データを受信する PHP ページは、ヘッダーを mb_internal_encoding("UTF-8"); に設定します。および iconv_set_encoding("internal_encoding", "UTF-8"); [これは上記の回答から取ったものです。どちらを保持し、どちらを削除するかわかりません。うまくいったので両方を保持しました]
    params.name=$("#cliente_nome").val();
    これ
      params.name=escape($("#cliente_nome").val());
  3. サーバーページは rawurlencode メソッドを使用する必要があります。
<?php

  mb_internal_encoding("UTF-8");
  iconv_set_encoding("internal_encoding", "UTF-8");
  include_once ("clase.php");// データベース接続ファイル
  session_start();
  $name=str_replace("+", " ", rawurldecode($_POST["name"]));
  ポリシー::saveOrders($name);

  ?>
于 2012-05-30T04:47:23.547 に答える