我正在通过 JavaScript 构建 CSV,一些单元格值包含主题标签和其他特殊字符。我特别注意到主题标签充当文件的硬停止。我无法在网上找到解决方案,也没有真正看到这个具体问题。我已尝试\uFEFF修复,但无济于事。下面是我用来构建 CSV 的函数。
export const buildCSV = (headers, data) => {
if (!headers && !data) return;
let csvContent = "data:text/csv;charset=UTF-8,";
if (headers) {
csvContent += headers.join(",") + "\r\n";
}
if (data) {
data.forEach(row => {
csvContent += row.join(",") + "\r\n";
});
}
return encodeURI(csvContent);
};
Run Code Online (Sandbox Code Playgroud)
作为参考,当前,诸如 的值150 # content将显示为150,并且打开 CSV 时其余行将被截断。
预先感谢任何花时间提供答案的人!
正如标题所说,代码如下。我尝试设置 chunkedTransfer=false、Content-Type application/json、WWWForm、手动构建 JSON 对象和 HttpClient。对于 Content-Type application/json,API 甚至没有被命中。对于其余的,身体是一个空物体。通过 StackOverflow、YouTube、Unity 文档和所有其他资源,我不知道问题出在哪里。
截至今天早上,我正在使用 Newtonsoft.Json 来序列化 JSON 正文。我认为现在最大的问题是当我设置webRequest.SetRequestHeader("Content-Type", "application/json");API路由时甚至没有收到请求。
async Task<string> makeRequest()
{
string url = API_BASE + "/users";
Dictionary<string, string> body = new Dictionary<string, string>();
body.Add("username", username);
body.Add("password", password);
body.Add("email", email);
using (UnityWebRequest webRequest = UnityWebRequest.Post(url, JsonConvert.SerializeObject(body)))
{
await webRequest.SendWebRequest();
string result = Encoding.UTF8.GetString(webRequest.downloadHandler.data);
if (webRequest.result != UnityWebRequest.Result.Success)
{
JSONNode error = JSON.Parse(result);
registerAndLoginError.GetComponent<Text>().text = error["error"]["message"];
registerAndLoginError.SetActive(true);
return "";
}
}
BasicLogin();
return "";
}
Run Code Online (Sandbox Code Playgroud)