我一直试图解决这个问题很长一段时间,但我认为我需要一个超越知识来做到这一点。
我有一个编码为iso-8859-1的PHP页面。 当有人在其上注册时,会向管理员发送邮件,并将用户插入数据库。
我需要获取一些数据并将它们传递给另一个函数。 我通过包含do_post_request函数来使用curl,它几乎完美地工作。
问题是当我使用这个函数传递数据时,删除了所有带重音的字符。 我无法更改第一页的编码,因为否则会损坏数据库中的电子邮件和插入。我需要找到一个使用utf-8标头发布数据的解决方案。
这里有一个简化的代码:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
...
...
// insert in the db
$result = mysql_query($query,$conn);
function do_post_request($url, $data, $optional_headers = null){
$params = array('http' => array(
'method' => 'POST',
'content' => $data
));
if ($optional_headers !== null) {
$params['http']['header'] = $optional_headers;
}
$ctx = stream_context_create($params);
$fp = @fopen($url, 'rb', false, $ctx);
if (!$fp) {
throw new Exception("Problem with $url, $php_errormsg");
}
$response = @stream_get_contents($fp);
if ($response === false) {
throw new Exception("Problem reading data from $url, $php_errormsg");
}
return $response;
}
$test = do_post_request($crmURL, $crmData);
mail('sugar.fornaciari@gmail.com','New user',"body message",'From: Me <info@myDomain.it>');
</body>
</html>
任何想法怎么办? 欢呼声
答案 0 :(得分:0)
我还在努力,但我疯了......
我无法弄清楚如何将从iso-8859-1表单发送的字符集转换为UTF-8字符。
换句话说,如果我有2页A和B且A在ISO中并且将参数发送到B为UTF-8,则不会保存像“òùìù”这样的参数。
但是如果我创建变量iside B就像“òùìù”这个数据当前已保存。
因为我无法更改A,有没有办法将数据转换为A?