私はsybaseを使用してMSSQLに接続するPHP 5.1.6を実行している古いUbuntu 6.10サーバーを継承しました。ユーザーが円ダッシュを含むいくつかのテキストを送信して、私のスクリプトの1つがハングしました。 SybaseはダッシュやéなどのUTF-8文字が好きではないことがわかりました。将来のデータベース検索でも、これらの文字は気に入らないでしょう。この問題を解決するために、ダッシュのような文字をハイフンに、éをeに変換したいと思います。音域について調べました。
私が考えた解決策は、PHPのiconv関数を使用してUTF-8をASCIIに変換することでした。私の開発コンピュータ(Ubuntu 12.04)ではうまく機能しますが、以前の本番サーバー(Ubuntu 6.10)ではうまく機能しません。デバッグ後、問題をiconvバージョンに追跡したようです。
echo café > test.txt
iconv --from-code=UTF8 --to-code=ASCII//TRANSLIT test.txt
result on 6.10: caf?
result on 12.04: cafe
iconv --version
result on 6.10: iconv (GNU libc) 2.4
result on 12.04: iconv (Ubuntu EGLIBC 2.15-0ubuntu10) 2.15
locale
両方のシステムで「en_US.UTF-8」を返します。
私の本番システムでiconvライブラリをアップグレードする必要があると思いますが、どうすればよいかわかりません。