2011-03-30 26 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功能。这真是太棒了。

相关问题