php + mssql をしばらく使用した後、mssql のエンコーディングのサポートがあまり良くないように感じます (実際、まだよくわかりません) が、まだデータベースを緊急に変更する必要がなかったので、できることは今日は、データを送信するときに再びエラーが表示されます。
php + mssql をしばらく使用した後、mssql のエンコーディングのサポートがあまり良くないように感じます (実際、まだよくわかりません) が、まだデータベースを緊急に変更する必要がなかったので、できることは今日は、データを送信するときに再びエラーが表示されます。
送信したntextフィールドには約220KBと大量の内容が含まれていたため、記事が長すぎることによるエラーだと勘違いしてしまいました。 PHP の設定を確認すると、PHP の mssql.textsize のサポートがすでに 400 K であることがわかりました。なぜまだエラーが発生するのでしょうか?エラーをオンにしてみたら、長すぎる記事ではなく、エンコードによるエラーだったことが分かりました。エラーは次のとおりです:
コードは次のとおりです | コードをコピー |
通知: iconv() [function.iconv]:....の入力文字列で不正な文字が検出されました。 |
私の英語は本当に下手ですが、iconv() 関数に問題があることだけは知っています。 Google 翻訳によると、入力文字列に不正な文字が検出されました。突然の気づき。
インターネットにアクセスして、エラー メッセージに基づいて問題の解決策を見つけます。つまり、iconv() の 2 番目のパラメータに //IGNORE を追加します。これは、エラーを無視することを意味します。コードは次のとおりです:
コードは次のとおりです | コードをコピー |
iconv("utf-8", "gbk//IGNORE", $str); |
テストされ、正常に送信されました。
注: ネチズンの経験によると、gbk の範囲は gb2313 よりも大きいため、gbk を使用したエンコードのエラー率は gb2313 のエラー率よりも小さくなります。