Archive for the ‘網站架設’ Category

Java JSP 正規式取出中文字

5 六月, 2009

import java.util.regex.Matcher;import java.util.regex.Pattern;String str="o中文o";String pattern="";Pattern p=null;Matcher m = null;//中文字碼範圍pattern="[\u4e00-\u9fa5]";p=Pattern.compile(pattern);m=p.matcher(str);while(m.find()){	System.out.println(m.group());}

Java JSP 讀取UTF-8檔案

4 六月, 2009

以下程式不考慮UTF-8 BOM的問題
 

import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;File fn=new File("utf8.txt");FileInputStream fis = new FileInputStream(fn);//指定utf-8編碼BufferedReader br = new BufferedReader( new InputStreamReader( fis,"utf-8" ) );String file_str_append="";String file_str="";while((file_str_append=br.readLine())!=null){  file_str+=file_str_append;}br.close();fis.close();//將utf-8所有檔案內容輸出System.out.println(file_str);

中央氣象局 RSS 解析正規式 Regex

1 五月, 2009

<%@page contentType="text/html; charset=utf-8" errorPage=""%>&#x10;<%@page import="java.util.regex.Pattern"%>&#x10;<%@page import="java.util.regex.Matcher"%>&#x10;<%&#x10;out.clear();&#x10;%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">&#x10;<html xmlns="http://www.w3.org/1999/xhtml">&#x10;<head>&#x10;<title>Parse Central Weather Demo</title>&#x10;<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />&#x10;</head>&#x10;<body>&#x10;<%&#x10;String str="";&#x10;String pattern="^([\\D]+)\\d{2}/\\d{2}\\s([\\D]+)\\s([\\D]+)\\s[\\D]+:\\s(\\d{1,3}\\s~\\s\\d{1,3})\\s[\\D]+:\\s(\\d{1,3})%\\((\\d{2}/\\d{2})\\s(\\d{2}:\\d{2})[\\D]+\\)$";&#x10;Pattern p=null;&#x10;Matcher m=null;&#x10;%>&#x10; 台北市05/01 今晚至明晨 晴時多雲 溫度: 22 ~ 24 降雨機率: 0%(05/01 16:30發布)<br />&#x10;<%&#x10;str=" 台北市05/01 今晚至明晨 晴時多雲 溫度: 22 ~ 24 降雨機率: 0%(05/01 16:30發布)";&#x10;pattern="^[\\D]+\\d{2}/\\d{2}\\s([\\D]+)\\s([\\D]+)\\s[\\D]+:\\s*(\\d{1,3}\\s~\\s\\d{1,3})\\s[\\D]+:\\s*(\\d{1,3})%\\((\\d{2}/\\d{2})\\s(\\d{2}:\\d{2})[\\D]+\\)$";&#x10;p = Pattern.compile(pattern);&#x10;m = p.matcher(str.trim());&#x10;if(m.find()){&#x10;	for (int i = 1; i <= m.groupCount(); i++) {&#x10;      out.println("group(" + i + "):" + m.group(i)+"<br />");&#x10;    }&#x10;    m.reset();&#x10;}&#x10;%><hr />明日白天 晴時多雲 溫度: 24 ~ 28 降雨機率: 0% <br />&#x10;<%&#x10;str="明日白天 晴時多雲 溫度: 24 ~ 28 降雨機率: 0% ";&#x10;pattern="^([\\D]+)\\s([\\D]+)\\s[\\D]+:\\s*(\\d{1,3}\\s~\\s\\d{1,3})\\s[\\D]+:\\s*(\\d{1,3})%$";&#x10;p = Pattern.compile(pattern);&#x10;m = p.matcher(str.trim());&#x10;if(m.find()){&#x10;	for (int i = 1; i <= m.groupCount(); i++) {&#x10;      out.println("group(" + i + "):" + m.group(i)+"<br />");&#x10;    }&#x10;    m.reset();&#x10;}&#x10;%><hr />05/02 溫度:22 ~ 28 晴時多雲&#x10;<%&#x10;str="05/02 溫度:22 ~ 28 晴時多雲";&#x10;pattern="^(\\d{2}/\\d{2})\\s[\\D]+:\\s*(\\d{1,3}\\s~\\s\\d{1,3})\\s([\\D]+)$";&#x10;p = Pattern.compile(pattern);&#x10;m = p.matcher(str.trim());&#x10;if(m.find()){&#x10;	for (int i = 1; i <= m.groupCount(); i++) {&#x10;      out.println("group(" + i + "):" + m.group(i)+"<br />");&#x10;    }&#x10;    m.reset();&#x10;}&#x10;%>&#x10;</body>&#x10;</html>

&#x10;

 

&#x10;

執行結結果:

&#x10;

台北市05/01 今晚至明晨 晴時多雲 溫度: 22 ~ 24 降雨機率: 0%(05/01 16:30發布)
&#x10;group(1):今晚至明晨
&#x10;group(2):晴時多雲
&#x10;group(3):22 ~ 24
&#x10;group(4):0
&#x10;group(5):05/01
&#x10;group(6):16:30

&#x10;


&#x10;

明日白天 晴時多雲 溫度: 24 ~ 28 降雨機率: 0%
&#x10;group(1):明日白天
&#x10;group(2):晴時多雲
&#x10;group(3):24 ~ 28
&#x10;group(4):0

&#x10;


&#x10;

05/02 溫度:22 ~ 28 晴時多雲&#x10;group(1):05/02
&#x10;group(2):22 ~ 28
&#x10;group(3):晴時多雲

&#x10;

 

&#x10;

 

&#x10;

 

&#x10;

備註:中央氣象局的RSS2.0並不是完全符合W3C的標準,且資料呈現不夠有條理,不易被解析

開發有中文內容的專案要考慮的事情

30 四月, 2009

跟一個美工人員說目前的專案要有中文,

&#x10;

美工會考慮有沒有適合的中文字型

&#x10;

 

&#x10;

跟一個程式人員說目前的專案要有中文,

&#x10;

程式人員會考慮會不會有中文衝碼

&#x10;

 

&#x10;

跟一個資料庫管理人員說目前的專案要有中文,

&#x10;

資料庫管理人員會考慮資料儲存是否要用Unicode儲存中文

&#x10;

 

&#x10;

跟一個企劃人員說目前的專案要有中文,

&#x10;

企劃人員會考慮內容是否能夠因為中文而引人注目

&#x10;

 

&#x10;

跟老闆說目前的專案要有中文,

&#x10;


老闆會考慮什麼時候開始專案會開始賺錢,有沒有中文都沒關係

Win32 PHP5 ODBC To Access Demo

27 四月, 2009

//設定ODBC來源,使用真實檔案路徑&#x10;$dblink_id = odbc_connect("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\db.mdb","mdb id","mdb pw"  ) or die ("db error");&#x10;//sql式,選出id的欄位&#x10;$sql='SELECT id FROM ur_table';&#x10;&#x10;if ($dblink_id) {&#x10;  //執行sql&#x10;  $res=odbc_exec($dblink_id,$sql);&#x10;  if($res) {&#x10;    //初始陣列&#x10;    $arr=array();&#x10;    //odbc_fetch_row不會回傳陣列,所以必須自行轉置,並指定使用hash的方式推入陣列&#x10;    while($list=odbc_fetch_array($res,ODBC_ASSOC)){&#x10;      array_push($arr,$list);&#x10;    }&#x10;    for( $i=0;$i<count($arr);$i++){&#x10;      //從陣列中取值的方式$arr[陣列索引].[欄位名稱]&#x10;      echo 'id:'.$arr[$i]['id']."\n";&#x10;    }&#x10;  }&#x10;  else{&#x10;    echo 'odbe_exec error'."\n";&#x10;  }&#x10;}&#x10;else{&#x10;  echo 'db link error'."\n";&#x10;}&#x10;

JSP 強制下載檔案

10 四月, 2009

<%@page import="java.util.ArrayList"%>&#x10;<%@page import="java.io.OutputStream"%>&#x10;<%@page import="java.io.FileInputStream"%>&#x10;<%@page import="java.util.Date"%>&#x10;<%@page import="java.net.URLEncoder"%>&#x10;<%@page import="com.pcyi.walkone.DAO.Verify"%>&#x10;<%@page import="org.hibernate.Session"%>&#x10;<%&#x10;out.clear();&#x10;//要給clinet下載時顯示的名字&#x10;String fileName = "clinet.txt";&#x10;fileName=URLEncoder.encode(fileName, "utf-8");&#x10;response.setHeader("Content-Disposition","attachment; filename=" + fileName );&#x10;String f_path="server_file.txt";&#x10;FileInputStream fis = new FileInputStream( application.getRealPath(f_path));&#x10;OutputStream os=response.getOutputStream();&#x10;byte byteRead;&#x10;while(-1 != (byteRead = (byte)fis.read())) {&#x10;  //文字檔UNIX換行轉PC換行&#x10;  if(byteRead=='\n'){&#x10;    os.write('\r');&#x10;  }&#x10;  os.write(byteRead);&#x10;}&#x10;os.close();&#x10;if (fis != null) {&#x10;  response.setStatus(200);&#x10;  response.flushBuffer();&#x10;  fis.close();&#x10;}&#x10;%>&#x10;

MySQL新增使用者與與使用者相同名稱的資料庫

31 三月, 2006
— 測試資料庫使用:MySQL 5.0.19nt
— MySQL5新增使用者與與使用者相同名稱的資料庫開始
CREATE DATABASE `new_user` ;
GRANT ALL PRIVILEGES ON `new_user`.* TO new_user‘@’localhost’ IDENTIFIED BY ‘new_user_password’;
FLUSH PRIVILEGES;
 
news_user=新使用者帳號
new_user_password=新使用者密碼(不需使用PASSWORD函數)
localhost=帳號允許存取的主機區域,預設localhost(本機)
— 將以上參數當成變數寫為程式即可做批次新增使用者的動作
 
— MySQL新增使用者與與使用者相同名稱的資料庫結束

WinXP Pro x86+MySQL 5.0.19+phpMyAdmin 2.8.0.2+Apache2 2.0.55+PHP 5.1.2

31 三月, 2006
最後更新
2006/03/31 13:28
前言
此環境應該是目前自己才能架設的因為所有軟體的版本是20060330官方釋出Win32的最新版本,租用虛擬主機以及直接安裝AppServ的人看看就好
 
目標
PHP ASCII編碼檔案即時轉碼為UTF-8瀏覽(為了配合MySQL使用UTF-8編碼存取)
 
原因
為了方便用隨便的編輯器即可撰寫PHP檔案,並且不會有衝碼字許功蓋的問題
 
示範平台
CPU P4 2.4GHZ
 
RAM DDR 1G
 
作業系統WinXP Pro SP2安裝於NTFS格式硬碟
 
作業系統安裝槽擁有3GB以上的未使用空間
 
有線網路使用亞太Cable 2M/256
 
伺服器平台:MySQL 5.0.19+phpMyAdmin 2.8.0.2+Apache2 2.0.55+PHP 4.4.1
伺服器軟體來源取得
MySQL5
phpMyAdmin
Apache2
PHP5
注意
基本Windows操作問題請別發問,自行上Google搜尋去
 
本文章所有的埠都是使用預設埠,如果設定與您的不同,請將不同的埠號修改成您自己設定的埠號
 
Apache2環境架設
(白吃安裝法…略),開啟防火牆80埠
MySQL5架設
    • 下載install版本,不要下載UnZip版本
    • 下載完成後解壓縮
    • 執行Setup.exe
    • 白痴安裝法, 接用預設值
    • 當安裝到Please select default character set.,請點選Best Support For Multilingualism
    • 當安裝到Please set the Windows options,多勾選Include Bin Directory in Windows PATH
    • 當安裝到Please set the security options,於New root password以及Confirm欄位輸入你自訂的密碼並牢記
    • 若需要自其他電腦使用本機MySQL,請開啟防火牆3306埠
PHP5環境架設

下載Zip檔,不要下載install的版本

 

我將Zip檔解開後的存放到C:\php5,php.exe的位置位於C:\php5\php.exe

 

php.ini-recommended複製到安裝windows的資料夾下,以我複製後位置是C:\WINDOWS\php.ini-recommended

php.ini-recommended重新命名為php.ini

修改php.ini

  • register_globals = Off
    關閉此設定可以提升效能,但程式相容性低,取得標準變數一定要用完整格式,例如$post[‘UserPost’]一定要使用$_POST[‘UserPost’]
  • extension_dir = "c:/php5/ext/"
    我解壓縮到C:\,固設定如上 
  • extension=php_mbstring.dll
    extension=php_mysql.dll
    將前面的;拿掉 
  • 將php.ini存檔

複製php5ts.dll

c:\php5\php5ts.dll複製到安裝windows的資料夾之下的system32資料夾下,以我複製後位置是C:\WINDOWS\system32\php5ts.dll

 
修改Apache2的httpd.conf
 
DirectoryIndex index.htm index.html index.html.var index.php index.phtml
尋找並修改 DirectoryIndex(預設文件)
 
LoadModule php5_module "C:/php5/php5apache2.dll"
<IfModule mod_mime.c>
  AddType application/x-httpd-php .php .phtml
  AddType application/x-httpd-php-source .phps
</IfModule>
 
加入到httpd.conf的最後
這樣支援.php以及.phtml檔案,.phps的php原始碼檔案會有彩色語法
將httpd.conf存檔,Apache2 Stop然後Start(用restart常常出問題,乾脆用stop+start),如果出錯誤請把錯誤回應上來

新增一個純文字文件,內容輸入<?php phpinfo();?>存檔,並且重新命名為index.php,放到Apache2的主目錄(預設htdocs)

 

使用瀏覽器瀏覽http://localhost:80/index.php ,看是否有php的環境變數輸出,有一堆紫色的畫面寫php安怎安怎的就是成功了

 
phpMyAdmin安裝
phpmyAdmin解壓縮至Apache2的主目錄下(預設htdocs),我的位置是C:\Apache2\htdocs\phpMyAdmin\
 
新增config資料夾於C:\Apache2\htdocs\phpMyAdmin下,我的位置是C:\Apache2\htdocs\phpMyAdmin\config\
 
 
設定config.inc.php
Servers按下Add按鈕
    • Authentication type
      選擇cookie 
    • User for config auth
      將已輸入的值刪除,保持淨空 
    • phpMyAdmin control user
      輸入最高權限的帳號,預設為root
    • phpMyAdmin control user password
      輸入最高權限帳號的密碼 (安裝MySQL5時所牢記的密碼)
    • phpMyAdmin database for advanced features
      輸入phpmyadmin 
    • 按下Add按鈕
Features按下Charsets按鈕
    • Allow charset conversion
      勾選此項 
    • Default charset
      選擇utf-8 
    • Recoding engine
      選擇Auto 
    • 按下Update按鈕
Configuration按下Save按鈕
 
Setup.php產生的config.inc.php複製到phpMyAdmin的根目錄下
舉例:C:\Apache2\htdocs\phpMyAdmin\config\config.inc.php
複製到
C:\Apache2\htdocs\phpMyAdmin\config.inc.php
將config資料夾整個刪除
舉例:刪除C:\Apache2\htdocs\phpMyAdmin\config\
 
選擇你愛用的語系(我選擇中文 – Chinese traditional (utf-8))
 
輸入最高權限的使用者帳號以及最高權限使用者帳號的密碼,按下登入按鈕
 
建立MySQL5關聯資料存放資料庫配合phpMyAdmin
  • 登入phpMyAdmin後的主目錄
  • 右方視窗新增資料庫輸入:phpmyadmin
  • 右方視窗點選建立
  • 右方視窗點選上方SQL
  • 複製以下粗體字的SQL指令
#
# 資料表格式: `PMA_bookmark`
#

CREATE TABLE `PMA_bookmark` (
`id` int(11) NOT NULL auto_increment,
`dbase` varchar(255) NOT NULL default “,
`user` varchar(255) NOT NULL default “,
`label` varchar(255) NOT NULL default “,
`query` text NOT NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM COMMENT=’Bookmarks’ AUTO_INCREMENT=1 ;

# ——————————————————–

#
# 資料表格式: `PMA_column_info`
#

CREATE TABLE `PMA_column_info` (
`id` int(5) unsigned NOT NULL auto_increment,
`db_name` varchar(64) NOT NULL default “,
`table_name` varchar(64) NOT NULL default “,
`column_name` varchar(64) NOT NULL default “,
`comment` varchar(255) NOT NULL default “,
`mimetype` varchar(255) NOT NULL default “,
`transformation` varchar(255) NOT NULL default “,
`transformation_options` varchar(255) NOT NULL default “,
PRIMARY KEY (`id`),
UNIQUE KEY `db_name` (`db_name`,`table_name`,`column_name`)
) TYPE=MyISAM COMMENT=’Comments for Columns’ AUTO_INCREMENT=24 ;

# ——————————————————–

#
# 資料表格式: `PMA_history`
#

CREATE TABLE `PMA_history` (
`id` bigint(20) unsigned NOT NULL auto_increment,
`username` varchar(64) NOT NULL default “,
`db` varchar(64) NOT NULL default “,
`table` varchar(64) NOT NULL default “,
`timevalue` timestamp(14) NOT NULL,
`sqlquery` text NOT NULL,
PRIMARY KEY (`id`),
KEY `username` (`username`,`db`,`table`,`timevalue`)
) TYPE=MyISAM COMMENT=’SQL history’ AUTO_INCREMENT=1 ;

# ——————————————————–

#
# 資料表格式: `PMA_pdf_pages`
#

CREATE TABLE `PMA_pdf_pages` (
`db_name` varchar(64) NOT NULL default “,
`page_nr` int(10) unsigned NOT NULL auto_increment,
`page_descr` varchar(50) NOT NULL default “,
PRIMARY KEY (`page_nr`),
KEY `db_name` (`db_name`)
) TYPE=MyISAM COMMENT=’PDF Relationpages for PMA’ AUTO_INCREMENT=3 ;

# ——————————————————–

#
# 資料表格式: `PMA_relation`
#

CREATE TABLE `PMA_relation` (
`master_db` varchar(64) NOT NULL default “,
`master_table` varchar(64) NOT NULL default “,
`master_field` varchar(64) NOT NULL default “,
`foreign_db` varchar(64) NOT NULL default “,
`foreign_table` varchar(64) NOT NULL default “,
`foreign_field` varchar(64) NOT NULL default “,
PRIMARY KEY (`master_db`,`master_table`,`master_field`),
KEY `foreign_field` (`foreign_db`,`foreign_table`)
) TYPE=MyISAM COMMENT=’Relation table’;

# ——————————————————–

#
# 資料表格式: `PMA_table_coords`
#

CREATE TABLE `PMA_table_coords` (
`db_name` varchar(64) NOT NULL default “,
`table_name` varchar(64) NOT NULL default “,
`pdf_page_number` int(11) NOT NULL default ‘0’,
`x` float unsigned NOT NULL default ‘0’,
`y` float unsigned NOT NULL default ‘0’,
PRIMARY KEY (`db_name`,`table_name`,`pdf_page_number`)
) TYPE=MyISAM COMMENT=’Table coordinates for phpMyAdmin PDF output’;

# ——————————————————–

#
# 資料表格式: `PMA_table_info`
#

CREATE TABLE `PMA_table_info` (
`db_name` varchar(64) NOT NULL default “,
`table_name` varchar(64) NOT NULL default “,
`display_field` varchar(64) NOT NULL default “,
PRIMARY KEY (`db_name`,`table_name`)
) TYPE=MyISAM COMMENT=’Table information for phpMyAdmin’;

  • 右方視窗輸入SQL指令的區域將已複製的SQL指令貼上
  • 右方視窗點選執行按鈕

 PHP5程式實作

新增一個純文字文件,更名為test.php

將以下粗體字程式碼複製貼入test.php內

<?php
mb_internal_encoding("Big5");
mb_http_output(‘UTF-8’);
ob_start(‘mb_output_handler’);
header(‘Content-Type: text/html; charset=UTF-8’);
?>
<html>
<head>

<title>Big5編碼,使用UTF-8展示</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<form method=post>
更改Admin姓名:<input type=text name="UserName" value="">
<input type=submit>
</form>
<?php
/*
— 資料表新增SQL開始

— 資料表請於test資料庫,在SQL語法執行處貼上並執行

— phpMyAdmin SQL Dump
— version 2.8.0.2
http://www.phpmyadmin.net

— 主機: localhost
— 建立日期: Mar 31, 2006, 01:56 AM
— 伺服器版本: 5.0.19
— PHP 版本: 4.4.1

— 資料庫: `test`

— ——————————————————–


— 資料表格式: `user_value`

CREATE TABLE `user_value` (
  `id` varchar(10) NOT NULL,
  `name` varchar(20) NOT NULL,
  PRIMARY KEY  (`id`)
) TYPE=InnoDB;


— RELATIONS FOR TABLE `user_value`:
—   `id`
—       `users` -> `id`


— 列出以下資料庫的數據: `user_value`

INSERT INTO `user_value` (`id`, `name`) VALUES (‘Admin’, ‘Administrstor’);

— ——————————————————–


— 資料表格式: `users`

CREATE TABLE `users` (
  `id` varchar(10) NOT NULL,
  `password` varchar(20) NOT NULL,
  PRIMARY KEY  (`id`)
) TYPE=InnoDB;


— 列出以下資料庫的數據: `users`

INSERT INTO `users` (`id`, `password`) VALUES (‘Admin’, ‘123’);


— 備份資料表限制


— 資料表限制 `user_value`

ALTER TABLE `user_value`
  ADD CONSTRAINT `user_value_ibfk_1` FOREIGN KEY (`id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

— 資料表SQL完畢
*/

/*
 mysql的連線預設字元集若是按照我的設定已經設定為utf-8
 所以請不要另外設定
 就算強制設定
 也是會出錯
 所有輸出變數資料都要使用 mb_convert_encoding($str, "Big5","UTF-8")即可轉碼

*/

$link_id=mysql_connect("輸入MySQL的主機位置","最高權限管理員帳號","最高權限管理員密碼") or die(‘Could not connect: ‘ . mysql_error());;
mysql_select_db("test") or die(‘Could not select database’);
if(isset($_POST[‘UserName’])){
 $sql = "UPDATE `user_value` SET `name` = ‘".$_POST[‘UserName’]."’ WHERE `id`= ‘Admin’;" or die(‘Query failed: ‘ . mysql_error());
 if(mysql_query($sql,$link_id)){
  echo "Admin姓名已更新為:".mb_convert_encoding($_POST[‘UserName’], "Big5","UTF-8")."<br>";
 }
 else{
  echo "Admin姓名無法更新為:".mb_convert_encoding($_POST[‘UserName’], "Big5","UTF-8")."<br>";
 }
}
$sql = ‘SELECT `users` . `id` , `user_value` . `name` FROM `users` INNER JOIN ( `user_value` ) ON `users` . `id` = `user_value` . `id`; ‘ or die(‘Query failed: ‘ . mysql_error());
$result=mysql_query($sql,$link_id);

//輸出資料庫內容開始
echo "<table border=1><tr><td>ID</td><td>Name</td></tr>\n";

while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
 echo "<tr>";
 foreach ($line as $col_value) {
  echo "<td>". mb_convert_encoding($col_value, "Big5","UTF-8")."</td>";
 }
 echo "</tr>\n";
}
echo "</table>\n";
//輸出資料庫內容結束

//釋放資料庫記憶體
mysql_free_result($result);

//關閉資料庫連線
mysql_close($link);
?>
<pre>
Big5內文測試
話說從前從前~~~
有位園藝家..擅長種植出世上最翠綠的草地~~
進而得到國王的寵愛~~並封他為"農務大臣"~~
後來農務大臣死後豐功偉績傳到了天堂~~
上帝便昭換農務大臣到天堂幫它種植草地~~
不過農務大臣上天堂後卻再也種不出綠油油的草地了~~

為啥為啥為啥???

因為……………

 

 

 

 

 

 

 

 

仙草是黑的………………..囧RZ
</pre>
</body>
</html>

修改mysql_connect("MySQL主機位置","最高權限管理員帳號","最高權限管理員密碼")

儲存test.php

將test.php內提到測試用的資料表建好

將test.php放在Apache2的主目錄下(預設htdocs),我的位置是C:\Apache2\htdocs\test.php

使用瀏覽器瀏覽http://localhost:80/test.php

按右鍵檢視網頁編碼是否為UTF-8

在輸入文字方塊內輸入一些中文例如:許功蓋並送出資料測試

送出資料後中文顯示正常者,恭喜你成功了

送出資料後中文顯示錯誤者,請你自己Debug

若是我文章有寫錯請回覆,想問問題的就別回了,想討論的歡迎您