【问题标题】:How to remove � from a csv download?如何从 csv 下载中删除 �?
【发布时间】:2017-01-15 21:54:27
【问题描述】:

我正在下载一个 CSV 文件,但所有的空格都变成了 �。 我意识到它在 ASCII 码或简单的打印指令中有所不同。 但是任何人都知道如何使用常规的 char 32 空间而不是 ...?

function importCSV() {

  var ss = SpreadsheetApp.getActiveSpreadsheet(); // Make the first sheet the active sheet
  ss.setActiveSheet(ss.getSheets()[0]);

  var cell = ss.getRange("SettingsManualInputs!D3");      //Get the clan name from cell D3
  var cellValue = cell.getValue();


  var rsurl = "http://services.runescape.com/m=clan-hiscores/members_lite.ws?clanName="; // set up the url address
  var csvUrl = rsurl+cellValue;

  var csvContent = UrlFetchApp.fetch(csvUrl).getContentText();     // call data from url in csv format                                   

  var csvData = Utilities.parseCsv(csvContent);

  var ss = SpreadsheetApp.getActiveSpreadsheet(); // Make the second sheet the active sheet
  ss.setActiveSheet(ss.getSheets()[1]);

  var sheet = SpreadsheetApp.getActiveSheet();    // select active sheet and get csv clan data pasted into cell B2
  sheet.getRange(2, 2, csvData.length, csvData[0].length).setValues(csvData);

}

我会发布一个演示,但它不允许我(没有足够的声誉)。

【问题讨论】:

  • 很可能是编码问题。另见:en.wikipedia.org/wiki/Specials_(Unicode_block)
  • 在它的响应头中,服务器没有指明字符编码并且还使用了一种奇怪的内容类型(文本/逗号分隔值),所以请查看它的文档。一旦你知道它是哪个“字符集”,你就可以告诉getContentText

标签: csv google-sheets ascii


【解决方案1】:

我使用 var cellValue ="test" 尝试了您的代码,但我得到的结果没有“�”字符。但是,如果您有该字符,则可以添加另一张纸并像这样替换该字符:

=arrayformula(SUBSTITUTE(Sheet2!A:E,"�"," "))

当您将文件带入时,您也许可以进行替代,但我没有很好的方法来测试它。

【讨论】:

  • 谢谢你,是的,我现在已经想出将清理后的替换数据发布到另一张纸上。很高兴我想出了同样的想法。作为旁注,我找不到任何与 � 字符匹配的 ascii 代码。我认为它是一个空打印机代码?但是,即使此修复程序不整洁,也不是脚本代码修复程序。我确实有我的数据。非常感谢您的帮助。
猜你喜欢
  • 2019-09-28
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 2020-06-13
  • 1970-01-01
相关资源
最近更新 更多