web-dev-qa-db-ja.com

ñのような特殊文字を含むphp

最初は、ajax呼び出しからecho json_encode($ row)を返すと、結果がNULLに変更されることが問題だと思いました。しかし、テストした後、問題はそのずっと前に存在することがわかりました。

サンプルのphpファイル:

_$test = "Nuñez"
echo $test
_

結果はただヌエズです

私は周りを検索しましたが、提案された解決策はどれも機能しません。お気に入り:

_mb_internal_encoding('UTF-8');
mb_http_output('UTF-8');
mb_http_input('UTF-8');
mb_language('uni');
mb_regex_encoding('UTF-8');
ob_start('mb_output_handler');
_

または_<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />_、またはheader('content-type: text/html; charset: utf-8');。そして、私がすでに忘れていたいくつかの解決策は、私がたくさん試したと信じています。

それはほんの始まりに過ぎません。私のデータベースはutf-8にあり、$ mysqli文字セットもそうなので、mysqlで問題が発生しないことを願っています。しかし、ajaxjson_encodeについて同じことを言うことはできないと思います。しかし、気にしないでください、一度に1つの問題。誰か助けてくれませんか。どうもありがとう!

問題解決「ANSIでエンコード」の場合と同様に、Notepad ++で「UTF-8でエンコード」を設定する必要がありました" 前。

6
Fred

私のために

$test = "Nuñez";
echo $test;

ショーヌニェス

あなたは試すことができます

$test = "Nuñez";
echo utf8_decode($test);

または

$test = utf8_encode("Nuñez");
echo utf8_decode($test);
6
000

これを試して

それは私のために働きます。

$test = "Nuñez";

echo html_entity_decode(htmlentities($test));
3
Hkachhia

ブラウザでñÑáéíóúなどのラテン文字を正しく表示するには、UTF-8エンコーディングの代わりにiso-8859-1を使用する必要があります http://www.w3schools.com/tags /ref_entities.asp

宜しくお願いします!

2
Pablo Garcia

mysql dbに接続するときは、->のようにcharsetをutf-8に設定します。

$sql_con = mysql_connect($sql_Host, $sql_user, $sql_pass);
mysql_query('SET NAMES utf8');
1
Eugen

文字列「CASTAÑO」で同じ問題に直面します。

投稿されたソリューションを試しました。

ini_set('default_charset', 'utf-8');ディレクティブを使用しました。

  • 選ばれたレコードは「CASTA�O」を示した
  • tf8-decodeを使用すると、「CASTA?O」が表示されます
  • tf8_encodeを使用すると、適切な文字列「CASTAÑO」が表示されます
0
itassets

default_charsetの設定を検討してください。これは私にとってはうまくいきました

ini_set( 'default_charset'、 'utf-8');

0
Pablo Pazos