2016-12-23 11 views
0

私のMySQLデータベースからイメージファイルパスを取得しています。パス名にユニコード文字が関連付けられるまで、すべて正常に動作しました。たとえば、このコードを使用して画像ファイルパスを取得しています。英語のアルファベットの写真についてはUnicode文字が正しくMySQLから引き出されました[PHP MYSQL]

$sql = "SELECT images FROM agents"; 
$basePath = "http://localhost/img/"; 
$result = mysqli_query($con, $sql); 
while ($row = mysqli_fetch_array($result)) { 
    $img = $row['images']; 
    $actualPath = $basePath . $img; 
    echo $actualPath; 
} 

、それは大丈夫だ、それはhttp://localhost/img/selena.jpgのようなものを判明しかし、それはUnicode文字を使っている場合は、trueファイルパスは副本文字が滞在することを私にするにはどうすればよいhttp://localhost/img/11_副本.jpg
だろう一方で、それはhttp://localhost/img/11_??.jpgようになりますそれがMySQLから引き出された後にちょうど??シンボルになるのではなく?

EDIT:基本mysqli_query()コマンドではなく、準備された文法を使用しました。

+0

PHPとmysqlの文字セットとファイルの保存された名前をチェックする必要があります。 – Naga

+0

あなたのデータベースに「副本」として表示されますか? – Beginner

+0

@Beginnerはいそうです。 –

答えて

1

クエリの前にUnicode文字を処理するためにSET NAMES UTF8を使用してください。

mysqli_query($con, 'SET NAMES UTF8'); 

$sql = "SELECT images FROM agents"; 
$basePath = "http://localhost/img/"; 
$result = mysqli_query($con, $sql); 
while ($row = mysqli_fetch_array($result)) { 
    $img = $row['images']; 
    $actualPath = $basePath . $img; 
    echo $actualPath; 
} 
+0

私は準備された声明を使用しても同じように機能しますか? –

+0

は今、それは 'HTTPなり:// localhostの/ IMG /11_å¯æ¬.jpg'、私はまだそれが副本' –

+0

あなたはこの画像リンクはDBに格納されてどのように投稿できます 'になりたいですか? – Samir