在Javascript中下载CSV文件时如何锁定十进制符号?

在Javascript中下载CSV文件时如何锁定十进制符号?,javascript,csv,download,axios,blob,Javascript,Csv,Download,Axios,Blob,我有一个可行的解决方案,可以下载由axios API生成的CSV文件。(见下面的代码) 我的问题是,根据Windows区域中设置的十进制符号,CSV文件中的数字并不总是正确的格式 例如: 如果我的十进制符号为“”,则CVS文件中的数字将保存为122.33 如果我的十进制符号是“,”,CVS文件中的数字将保存为122,33 有没有办法“锁定”这个设置,所以当javascript从blob创建CSV文件并下载它时,十进制符号总是“.” 这是我的密码: getWithParams: (route,

我有一个可行的解决方案,可以下载由axios API生成的CSV文件。(见下面的代码)

我的问题是,根据Windows区域中设置的十进制符号,CSV文件中的数字并不总是正确的格式

例如:

  • 如果我的十进制符号为“”,则CVS文件中的数字将保存为122.33
  • 如果我的十进制符号是“,”,CVS文件中的数字将保存为122,33
有没有办法“锁定”这个设置,所以当javascript从blob创建CSV文件并下载它时,十进制符号总是“.”

这是我的密码:

getWithParams: (route, mutation, commit, payload) => new Promise((resolve, reject) => {
    commit('setIsLoading', true);
    const params = new URLSearchParams();
    payload.params.forEach((element) => {
      params.append(element.param, element.value);
    });
    axios.get(`${apiURL}${route}`, { params, responseType: 'blob' }).then((response) => {
      FileDownload(response.data, 'QueryResults.csv');
      commit('setIsLoading', false);
      resolve(response);
    }).catch((error) => {
      reject(helpers.setError(error.message));
    }).finally(() => {
      commit('setIsLoading', false);
    });
  }),
注:

  • 我无法要求用户在Windows中更改其区域参数
  • CSV文件中的分隔符为;为了确保它不会与十进制符号混淆

这不是服务器端问题吗?为什么客户端代码与此相关?@CallumMorrisson根据进行呼叫的计算机,生成的CSV会随或发生更改。在同一台服务器上。但创建CSV文件的是服务器,对吗?还是从服务器返回原始数据并让客户端创建CSV文件?服务器正在生成CSV文件。客户端只创建一个接收到blob的文件。是的,所以问题出在服务器上。您需要修复生成CSV的服务器代码。