目次
回复讨论(解决方案)
ホームページ バックエンド開発 PHPチュートリアル PHP エクスポートは文字化けもせず、奇妙な問題が発生しました。助けてください。

PHP エクスポートは文字化けもせず、奇妙な問題が発生しました。助けてください。

Jun 23, 2016 pm 01:54 PM
故障中 文字化け 偉大なる神



上面第一个图是导出后的效果图,第二张是数据库实际数据,细心的哥们就发现导出的图后三位全部变为0,这神马情况啊

求大神指点
代码如下:

 <?phpdefine('NOROBOT', true);define('CURSCRIPT', 'charge');require_once './include/common.inc.php';header("Content-type:application/vnd.ms-excel;charset=utf-8");header("Content-Disposition:attachment;filename=充值卡.xls");$page = $page ?: 1; $results = array(); $condition = '';		  		 echo   "被充值手机号"."\t";  		 echo   "充值卡序列号"."\t";  		 echo   "充值金额"."\t"; 		 echo   "实充额度"."\t";				 echo   "充值时间"."\t";$query = $mysqli->multi_query('CALL UP_User_GetCardInfo("'.$condition.'","'.$page.'","900000")')  or die($mysqli->error);$query = $mysqli->store_result();		 while ($record = mysqli_fetch_array($query, MYSQLI_BOTH)){		$phone = $record['phone'];		$cardid = $record['cardid'];			$charge = $record['charge'];			$achieve = $record['achieve'];			$chgdate =  $record['useDate'];	 								echo   "\n"; 		echo   $phone."\t";		echo   $cardid."\t"; 		echo   $charge."\t"; 		echo   $achieve."\t"; 		echo   $chgdate."\t"; 				}if(is_object($query)) 	$query->free_result();$mysqli->next_result();   ?>
ログイン後にコピー


回复讨论(解决方案)

没人!

用另外一种方法也是一样的效果,代码如下:

 <?php//iconv("utf8","gb2312",$v)。数据库用的UTF8,导出csv时如不转换excel打开中文将显示乱码(文本正常)require_once './include/common.inc.php';function exportToCsv($csv_data, $filename = 'export.csv') {    $csv_terminated = "\n";    $csv_separator = ",";    $csv_enclosed = '"';    $csv_escaped = "\\";    // Gets the data from the database    $schema_insert = '';    $out = '';    // Format the data    foreach ($csv_data as $row)    {        $schema_insert = '';        $fields_cnt = count($row);        //printr($row);        $tmp_str = '';        foreach($row as $v)        {            $tmp_str .= $csv_enclosed.str_replace($csv_enclosed, $csv_escaped . $csv_enclosed, iconv("utf8","gb2312",$v)).$csv_enclosed.$csv_separator;        } // end for                $tmp_str = substr($tmp_str, 0, -1);        $schema_insert .= $tmp_str;        $out .= $schema_insert;        $out .= $csv_terminated;    } // end while    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");    header("Content-Length: " . strlen($out));    header("Content-type: text/x-csv;charset=utf-8");    header("Content-Disposition:filename=$filename");#header('Content-Disposition: attachment;filename="'.iconv('utf-8', "gb2312", $filename));    echo $out;}#$title = array("uid","username","company");#$title = $_SESSION["exp_title"];$title = array();$field = array();foreach ($_SESSION["exp_title"] as $key => $val){  $title[] = $key;  $field[] = $val;}#$query = $mysqli->query("select uid,username,phone from ccna_members limit 10") or die($mysqli->error);#$query = $mysqli->multi_query("select * from ccna_members limit 10")  or die($mysqli->error);$query = $mysqli->multi_query($_SESSION["exp_sql"])  or die($mysqli->error);$query = $mysqli->store_result();//$csv_data = array(array('uid', 'username'));//所有记录就存这啦$csv_data = array(array());//压入表头,将字段放到第一行for ($i=0; $i < count($field); $i++) {	  $csv_data[0][$i]= $field[$i];}while($row = mysqli_fetch_array($query,MYSQLI_BOTH)){	//array_push($csv_data, array($row[0],$row['username']));		$row_array = array();	for ($i=0; $i < count($title); $i++) {		#array_push($row_array,iconv("utf-8","gb2312",$row[$title[$i]]));		array_push($row_array,$row[$title[$i]]);	}	array_push($csv_data,$row_array);}exportToCsv($csv_data,$_SESSION["exp_filename"].".csv");?>
ログイン後にコピー

echo   $cardid."\t";
改为
echo   “‘$cardid\t";

echo   $cardid."\t";
改为
echo   “‘$cardid\t";


还是一样,不行。谢谢你的回答

怎么可能,你产生的就是文本文件,只不过后缀不同罢了


我加你扣扣可以吗?

怎么可能,你产生的就是文本文件,只不过后缀不同罢了



可以我改成echo   "$cardid\t";    还是不行,不知道为什么。

 "’$cardid\t"; 
有个单引号
是也在想:字太小可能看不清

 "’$cardid\t"; 
有个单引号
是也在想:字太小可能看不清



谢谢。 结贴给分

?成字符串就可以了。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

文字化けした単語のページ番号を解決する方法 文字化けした単語のページ番号を解決する方法 Jun 25, 2023 pm 03:23 PM

Word のページ番号が文字化けする場合の解決策: 1. Word 文書を開き、左上隅にある [ファイル] オプションをクリックします; 2. [詳細] オプションを選択し、[オプション] ボタンをクリックします; 3. [詳細] を選択します。 Word のオプション内; 4. . 「文書の内容を表示」の「フィールド値の代わりにフィールドコードを表示」を見つけて、先頭のチェックを外し、「OK」をクリックしてホームページに戻ります。

Linuxで中国語の文字化けを解決する方法 Linuxで中国語の文字化けを解決する方法 Feb 21, 2024 am 10:48 AM

Linux の中国語の文字化け問題は、中国語の文字セットとエンコーディングを使用する場合によく見られる問題です。文字化けは、ファイルのエンコード設定が正しくない、システム ロケールがインストールまたは設定されていない、端末の表示設定エラーなどが原因で発生する可能性があります。この記事では、いくつかの一般的な回避策を紹介し、具体的なコード例を示します。 1. ファイルのエンコード設定を確認します。ファイルのエンコードを表示するには file コマンドを使用します。ターミナルで file コマンドを使用して、ファイルのエンコードを表示します: file-ifilename。出力に「charset」がある場合

Linux tty で中国語文字化けが発生する場合の対処方法 Linux tty で中国語文字化けが発生する場合の対処方法 Mar 16, 2023 am 09:20 AM

Linux tty の中国語文字化けの解決策: 1. 「sudo apt-get install fbterm」コマンドでフォント fbterm をダウンロードする; 2. 「sudo fbterm」コマンドを実行する; 3. フォントとフォント サイズを「font-names」に変更する=Ubuntu Mono font-size=14」で十分です。

Tomcat 起動時に文字化けしたコードを解決する方法 Tomcat 起動時に文字化けしたコードを解決する方法 Dec 26, 2023 pm 05:21 PM

Tomcat 起動時の文字化けの解決策: 1. Tomcat の conf 設定ファイルを変更する; 2. システム言語を変更する; 3. コマンド ライン ウィンドウのエンコードを変更する; 4. Tomcat サーバーの設定を確認する; 5. プロジェクトのエンコードを確認する; 6. ログを確認するファイル; 7 、他の解決策を試してください。詳細な導入: 1. Tomcat の conf 構成ファイルを変更し、Tomcat の conf ディレクトリを開き、「logging.properties」ファイルなどを見つけます。

Windows10で中国語が文字化けする問題を解決する方法 Windows10で中国語が文字化けする問題を解決する方法 Jan 16, 2024 pm 02:21 PM

Windows 10では文字化けが多発しております。多くの場合、この背後にある理由は、オペレーティング システムが一部の文字セットのデフォルト サポートを提供していないか、設定された文字セット オプションにエラーがあることです。適切な薬を処方するために、実際の操作手順を以下で詳しく分析します。 Windows 10 の文字化けコードを解決する方法 1. 設定を開いて「時刻と言語」を見つけます 2. 次に「言語」を見つけます 3. 「言語設定の管理」を見つけます 4. ここで「システム地域設定の変更」をクリックします 5. 図のようにボックスをチェックしますそして、「必ず確認してください」をクリックします。

win11のシステムドキュメントが文字化けする問題を解決する方法 win11のシステムドキュメントが文字化けする問題を解決する方法 Jun 29, 2023 pm 06:29 PM

win11でテキストドキュメントが文字化けする問題を解決するにはどうすればよいですか?多くのユーザーがwin11システムを使用していると、テキストドキュメントが文字化けして正常に読むことができなくなり、この問題を解決する方法が分からない友人も多くいます。実際、この方法は難しいことではありません。以下に、Windows 11 のシステム ドキュメントが文字化けする問題を解決する手順を編集者がまとめました。何かのヒントになれば幸いです。文字化けした Windows 11 システム ドキュメントを解決する手順: 1. まず、win11 のコントロール パネルを開き、下の検索ボックスに「コントロール パネル」と入力し、[検索] をクリックしてコントロール パネルに入ります。 2. パネルに入ったら、時計とエリアを見つけてクリックして入力し、エリア オプションをクリックします。 3. 入力後、管理パネルをクリックし、システムの地域設定の変更をクリックします。

dllファイルを開くときに文字化けする問題を解決する編集方法 dllファイルを開くときに文字化けする問題を解決する編集方法 Jan 06, 2024 pm 07:53 PM

多くのユーザーがコンピュータを使用していると、拡張子が dll のファイルがたくさんあることに気づきますが、そのファイルの開き方が分からないユーザーも多いので、知りたい方は以下を参照してください。 dll ファイルを開いて編集するには: 1. 「exescope」というソフトウェアをダウンロードし、インストールします。 2. 次に、dll ファイルを右クリックし、[exescope でリソースを編集] を選択します。 3. ポップアップ エラー プロンプト ボックスで [OK] をクリックします。 4. 次に、右側のパネルで、各グループの前にある「+」記号をクリックして、グループに含まれるコンテンツを表示します。 5. 表示したい dll ファイルをクリックし、「ファイル」をクリックして「エクスポート」を選択します。 6. そうすれば、次のことができます

win11のメモ帳の文字化け問題を解決する win11のメモ帳の文字化け問題を解決する Jan 05, 2024 pm 03:11 PM

友人の中には、メモ帳を開こうと思っていますが、Win11 のメモ帳が文字化けしていることに気づき、どうすればよいかわかりませんが、実際には、通常は地域と言語を変更するだけで十分です。 Win11 メモ帳が文字化けする: 最初のステップ、検索機能を使用し、「コントロール パネル」を検索して開きます。 2 番目のステップ、時計と地域の下の [日付、時刻、または数値形式の変更] をクリックします。 3 番目のステップ、カードの上にある [管理] オプションをクリックします。 4 番目のステップでは、下の [システムの地域設定の変更] をクリックし、5 番目のステップでは、現在のシステムの地域設定を [中国語 (簡体字、中国)] に変更し、[OK] をクリックして保存します。

See all articles