繁体   English   中英

如何用HTML发布HTML中的非ascii字符并使用PHP读取它?

[英]How to post non-ascii chars in a HTML from and read it using PHP?

我创建了一个小的HTML表单,并将其另存为UTF-8编码的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框架,如果我用$this->input->post('name');阅读它$this->input->post('name'); 我得到相同的结果,只有st

为什么会出现这个问题? CodeIgniter会去除我的瑞典字母吗?还是我的字符编码有问题?

更新:我已经在标头中添加了元标记<meta charset="utf-8" \\> ,现在可以使用了。

猜猜这是为Codeigniter设计的答案:

http://www.haughin.com/2010/02/23/building-utf8-compatible-codeigniter-applications/

基本上,您必须使用修改后的form_open和form_prep函数创建新的form_helper.php文件。 这些修改将允许发布UTF-8字符。

只要确保您的HTML输出是UTF-8(适当的标头),就可以在以表格形式输出详细信息时使用此函数,以便不破坏文本:

form_prep()

允许您在表单元素内安全使用HTML和字符(例如引号)而不会脱离表单。 考虑以下示例:

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

详细信息在用户指南中

检查所有的php文件(控制器和其他什么)也都是UTF-8

使用CodeIgniter的“转换为实体”功能。 太棒了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM