Javascript 编写CSV文件:显示Â;人物
我正在使用phonegap创建一个可以导出csv文件的应用程序。我是通过使用文件编写器()来实现这一点的 问题是,当我使用OpenOffice.org打开导出的.csv文件时,它会显示以下字符:�Â� 在学位符号(°)之前。 详情如下: HTMLJavascript 编写CSV文件:显示Â;人物,javascript,php,csv,cordova,Javascript,Php,Csv,Cordova,我正在使用phonegap创建一个可以导出csv文件的应用程序。我是通过使用文件编写器()来实现这一点的 问题是,当我使用OpenOffice.org打开导出的.csv文件时,它会显示以下字符:�Â� 在学位符号(°)之前。 详情如下: HTML <select> <option value="°C"> °C </option> <select> PHP while($row = $STH->fe
<select>
<option value="°C"> °C </option>
<select>
PHP
while($row = $STH->fetch())
$row['temperature_unit'] = html_entity_decode($row['temperature_unit']);
$row_set[] = $row;
}
echo json_encode($row_set);
Javascript(缩写)
结果(在openoffice.org应用程序中打开的csv文件)
编辑:将数据保存到数据库的AJAX和PHP代码(缩短) 阿贾克斯 php
这是一个编码问题,您在某个地方将UTF-8(°)写为拉丁语1。数据库中已存在错误的值 将表的列排序规则设置为
utf8\u general\u ci
,不要忘记使用正确的值“C”更新数据库
UPD
- HTML应使用UTF-8编码:
- 在ajax请求中,可能会显式指定
contentType:“charset=utf-8”
- 在保存到数据库之前,请尝试退出
值,查看该值是否已损坏$\u请求['temp\u unit']
- 作为一个修补程序,我可以建议调用
,但这听起来很蹩脚\u REQUEST['temp\u unit']
- 顺便说一句,问题可能出在。试着去做
LATIN1
。数据库中已存在错误的值。您的数据库列编码是否设置为UTF-8?@mudasobwa该表的排序规则当前设置为“latin1_swedish_ci”,我应该将其设置为什么?我尝试将该列的排序规则更改为您所说的,但它仍然保存“C”1。据我所知,这是一个“静态”值,请使用phpMySqlAdmin
或类似方法保存。2.是否在将数据保存到数据库时存在问题,请提供用于将值写入数据库的代码。3.您的页面是否设置为UTF-8编码?尝试更改“°;C”
到explicit°C
并查看打印出的内容。我不知道为什么,但它仍然保存了“C”。1)HTML页面已经使用utf-8编码。2)我将ajax调用从$.post更改为$.ajax,并添加了contentType:“charset=utf-8”。3)$\u请求['temp\u unit']输出“C”。更正:$\u请求['temp\u unit']输出“C”当在PHP中回响时。我使用了javascript的警报,数据通过ajax来自PHP,这就是为什么它显示为“C”。PHP中出现了什么问题?作为一个修补程序,我可以建议调用\u请求['temp\u unit]
,但这听起来很蹩脚。您介意检查一下它是否正常工作吗?
while($row = $STH->fetch())
$row['temperature_unit'] = html_entity_decode($row['temperature_unit']);
$row_set[] = $row;
}
echo json_encode($row_set);
//data = json_encoded $row_set
var datatoexport = JSON.parse(data)
var content = "Temperature \n";
for(var x in datatoexport) {
content += datatoexport[x].temperature + " " + datatoexport[x].temperature_unit;
}
//write content to file
writer.write(content);
writer.onwriteend = function(evt) {
alert("File exported");
};
Temperature
-----------
36 �Â�°C
assetinfo = {temp:"35",temp_unit:"°C"}
$.post(serverURL + 'API/save.php',
{
temperature: assetinfo.temp,
temp_unit: assetinfo.temp_unit
},
function(data) {
alert("saved");
}
});
$temp = $_REQUEST['temperature'];
$temp_unit = $_REQUEST['temp_unit'];
$STH = $DBH->prepare("INSERT INTO bearing_table (temperature, temperature_unit) VALUES (:temp, :temp_unit)");
$STH->bindParam(':temp', $temp);
$STH->bindParam(':temp_unit', $temp_unit);
$STH->execute();