ホームページ >バックエンド開発 >PHPチュートリアル >PHP は Access データベースを使用して iconv を使用してインポートする文字切り捨ての問題

PHP は Access データベースを使用して iconv を使用してインポートする文字切り捨ての問題

WBOY
WBOYオリジナル
2016-06-23 13:53:021154ブラウズ

1. iconv を使用して切り詰める文字をインポートします

<?phpheader("content-type:text/html;charset=utf-8");include 'conn.php'; $query=odbc_do($conn,"select top 10 id,biaoti from news ");//$num = 0;while(odbc_fetch_row($query)){?><a href="View.php?id=<?=odbc_result($query,1)?>"><?=iconv('gbk','utf-8//ignore',odbc_result($query,2))?></a><?phpecho "<br>";}?>


ディスカッションに返信 (解決策)

2. PHP はアクセスデータベースを読み取り、フィールドはコメントタイプで出力は空白になります

<?php include 'conn.php'; $id=$_GET['id']; $sql="select biaoti,neirong from news WHERE id =".$id;$query=odbc_do($conn,$sql);while(odbc_fetch_row($query)){$biaoti=odbc_result($query,biaoti);echo $biaoti; //标题可以输出echo $neirong;// 内容是空的,输出不了}?>

コメント欄の種類は何ですか?

あなた
$biaoti=odbc_result($query,biaoti);
echo $biaoti; // タイトルは出力できます
echo $neirong;// neirong の内容を読んでいません、もちろん出力できません

あなたの備考欄はどのタイプですか?

あなた
$biaoti=odbc_result($query,biaoti);
echo $biaoti; //タイトルは出力できます
echo $neirong;// neirong の内容を読んでいないので、当然出力できません



ここで書き間違えたので、ネイロンを読み込むコードを追加しました
ネイロンのフィールドタイプはリマークタイプです。

echo strlen($neirong)
は何を出力しますか?

echo strlen($neirong)
は何を出力しますか?


コンテンツの出力は問題ありませんが、iconv import を使用した文字切り捨ての問題は解決されていません。

2008 年 4 月 18 日より、蛇口発マカオ (新しい香港マカオ フェリー ターミナル) 間のフライトが 2 便追加されます。
切り捨ては次のようになります。
2008 年 4 月 18 日より、蛇口発のフライトが 2 便追加されます。マカオ(新しい香港マカオフェリーターミナル)への往復は

不可能です! utf-8 コレクションは gbk コレクションよりも大きいです

$s = '从2008年4月18日起,蛇口往返澳门(新港澳码头)各增加两个航班';echo iconv('gbk', 'utf-8//ignore', $s);
2008 年 4 月 18 日から、蛇口とマカオ (新香港マカオ フェリー ターミナル) 間のフライトがさらに 2 便追加されます

不可能です! UTF-8 コレクションは gbk コレクション

$s = '从2008年4月18日起,蛇口往返澳门(新港澳码头)各增加两个航班';echo iconv('gbk', 'utf-8//ignore', $s);
よりも大きいです。 2008 年 4 月 18 日から、蛇口とマカオ (新香港マカオ フェリー ターミナル) 間のフライトが 2 便追加されます


モデレーター、メール アドレスをお持ちですか?データベースとコードを直接送信しますか?

ニュース テーブルの biaoti フィールド幅を 50 から 100 に変更します
すべての問題が解決されました

ニュース テーブルの biaoti フィールド幅を 50 から 100 に変更します
すべての問題解決しました


モデレーターさん、よく分かりませんが、例えば50バイトに設定すると、保存するときに50バイトしかデータが保存できませんよね?しかし、明らかにデータベースに保存されているのに、なぜ取り出されないのでしょうか?

はい、挿入時に長すぎるとエラーが報告されます。
どうやって挿入したのかわかりません
たとえ、biaoti が 50 を押してデータを読み出すだけでも、最後に文字化けが発生します
でも、biaoti が長すぎると、neirong の読み取りには影響しないはずです。 、ネイロンは読めません

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。