首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google如何用Unicode打开带有汉字的CSV?

Google如何用Unicode打开带有汉字的CSV?
EN

Stack Overflow用户
提问于 2022-03-22 05:04:43
回答 1查看 212关注 0票数 0

我有一个CSV文件,里面有汉字。汉字是用Unicode编码的(例如香)。

如何在Google中打开或导入此CSV文件,并使汉字显示正确,我的意思是将汉字显示为实际的汉字(例如,香应显示为香)。

如果Google工作表不能在实际的汉字中解码和显示Unicode,那么Excel能做到吗?

下面是一个非常简单的例子,这样一个CSV文件内容,只有两行。

代码语言:javascript
复制
Product Title
香辣猪
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-22 05:49:34

代码语言:javascript
复制
function decode(code = '香'){
  var char = String.fromCharCode(code.match(/&#(\d+);/)[1]);
  console.log(char)
}

String.fromCharCode

代码语言:javascript
复制
      var code = '香'
      var char = String.fromCharCode(code.match(/&#(\d+);/)[1]);
      console.log(char)

从纸张解码的例子

如果您已经上传了数据,请使用此方法进行解码。

代码语言:javascript
复制
function decode(){
  var sh=SpreadsheetApp.getActiveSheet()
  var data=sh.getDataRange().getValues()
  data.forEach((rng, row) => {
    rng.forEach((r, col) => {
      code = (ExtractAllRegex(r, '&#([0-9]+);', 1))
      code.forEach(function (c) { r = r.replace(`&#${c};`, String.fromCharCode(c)) })
      data[row][col] = r
    })
  });
  sh.getDataRange().setValues(data)
}
function ExtractAllRegex(input, pattern,groupId) {
  return Array.from(input.matchAll(new RegExp(pattern,'g')), x=>x[groupId]);
}

从url解析csv的示例

代码语言:javascript
复制
function importCsvFromUrlCodeHtml(){
  // enable service google sheets api
  var url = 'http://xxxxxxxxxxxxxx.csv'
  var data = UrlFetchApp.fetch(url).getContentText()
  code = (ExtractAllRegex(data, '&#([0-9]+);', 1))
  code.forEach(function (c) { data = data.replace(`&#${c};`, String.fromCharCode(c)) })
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = ss.getActiveSheet();
  sh.clear();
  SpreadsheetApp.flush();
  var req = { pasteData: { data: data, delimiter: ",", coordinate: { sheetId: sh.getSheetId() } } };
  Sheets.Spreadsheets.batchUpdate({requests: [req]}, ss.getId());
}
function ExtractAllRegex(input, pattern,groupId) {
  return Array.from(input.matchAll(new RegExp(pattern,'g')), x=>x[groupId]);
}

从驱动器解析csv的示例

代码语言:javascript
复制
function importCsvFromIdCodeHtml() {
  var id = '13tlu9eYb5Ty3L45_RKibsfHjOXyUxeX3';
  var csv = DriveApp.getFileById(id).getBlob().getDataAsString();
  var csvData = Utilities.parseCsv(csv);
  csvData.forEach((rng, row) => {
    rng.forEach((r, col) => {
      code = (ExtractAllRegex(r, '&#([0-9]+);', 1))
      code.forEach(function (c) { r = r.replace(`&#${c};`, String.fromCharCode(c)) })
      csvData[row][col] = r
    })
  });
  var f = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  f.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);
}

function ExtractAllRegex(input, pattern,groupId) {
  return Array.from(input.matchAll(new RegExp(pattern,'g')), x=>x[groupId]);
}

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71567141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档