web-dev-qa-db-ja.com

Windows-1252文字をPHPの値に変換する方法は?

Windows-1252文字を含むデータベースフィールドがいくつかあります。

an example pain— if you’re

これらの値は、このリストの目的の値にマップされます。

http://www.i18nqa.com/debug/utf8-debug.html

Htmlentites、mb_detect_encoding、uft8_decodeなどのさまざまな順列を試しましたが、これらの値を次のように変換することはまだできていません。

痛みの例—もしあなたが

これらの文字をphpにリストされている値に変換するにはどうすればよいですか?

9
dbcn

なんてこった、これは解決するのに時間がかかりすぎたので、このリンクが検索で出続けたので、ここに私の答えを投稿したいと思います。私のMySQLDBテーブルにはutf8mb4_unicode_520_ciでエンコードされており、列にはそれらの厄介な作業中の引用符があります。 DB値を読み取ってjson_encodeでエンコードしようとしましたが、失敗し、json_encodeが空白を返すため、utf8_encodeを使用しました。それはキャラクターを不適切に変換しました。 Windows-1252からUTF-8に移行するには、mb_convert_encodingを使用する必要がありましたが、json_encodeもそれを台無しにしました。結局、これはうまくいきました:

$file = urlencode(mb_convert_encoding ($stringwithcurlyquotes, "UTF-8", 'Windows-1252'));

画像のURLに問題があったので、これは完全に機能し、反対側でデコードする必要はありませんでした。

0
thedoctore