2011-03-30 57 views
0

我創建了一個小的HTML表單,並將其保存爲UTF-8 -encoded PHP文件:如何在HTML中發佈非ASCII字符並使用PHP讀取它?

<!DOCTYPE html> 
<html> 
<head><title>My form</title></head> 
<body> 
<h1>My form</h1> 
<form method="post"> 
<input type="text" name="myfield" /><br /> 
<input type="submit" value="Send" /> 
</form> 
</body> 
</html> 

但是,如果我在文本字段中鍵入Öst並張貼,瑞典信Ö被剝離所以只有我當我用$_POST['name']讀取它時,獲得st。我使用的是CodeIgniter PHP Framework,如果我用$this->input->post('name');讀取它,我會得到相同的結果,只有st

爲什麼我會遇到這個問題? CodeIgniter是否剝離我的瑞典語字母,還是對字符編碼有問題?

更新:我在標題中添加了元標記<meta charset="utf-8" \>,現在它可以工作。

+0

你在PHP方面使用了哪些衛生設施? – powtac 2011-03-30 10:47:39

+0

@powtac:我使用'$ _POST ['name']'和'$ this-> input-> post('name');'就像我在問題中寫的那樣。 – Jonas 2011-03-30 11:07:53

+0

如果您找到解決方案,請標記幫助您的人,或發佈您自己的解決方案,並將其標記爲SO方式的答案。 – Jakub 2011-03-30 19:51:04

回答

1

只要你確保你的HTML輸出爲UTF-8(正確的頭文件),爲了outputing的形式詳細信息時,不要打破文本,你可以使用這個功能:

form_prep() 

允許您可以安全地在表單元素中使用HTML和字符(例如引號),而不會脫離表單。考慮這個例子:

$string = 'Here is a string containing "quoted" text.';  
<input type="text" name="myform" value="$string" /> 

詳情是here in the User Guide

0

檢查所有PHP文件(控制器和什麼不可以)也UTF-8

0

使用CodeIgniter的Convert To Entities功能。這真是太棒了。

相關問題