如何在JavaScript的base64数据中编码土耳其语字符?

时间:2018-11-18 09:53:31

标签: javascript unicode

我正在使用FileSaver.js软件包以 .eml 格式保存基于文本的文件。但是,土耳其语字符(ı,ş,ç)编码不正确。

示例:

<html lang="en">
<head>
  <meta charset="utf-8">
  <title>POC Extension</title>
  <meta name="description" content="POC Extension">
  <meta name="author" content="Yann Bohbot">
  <!-- <link rel="stylesheet" href="css/popup.css"> -->
  <link rel="stylesheet" href="css/popup.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="js/popup.js"></script>
</head>
<body>
  <h2>Toggle</h2>
  <ul class="tg-list">
    <li class="tg-list-item">
      <h4>Flat</h4>
      <input type="checkbox" id="cb4" class="tgl tgl-flat" value = "Disable" />
      <label class="tgl-btn" for="cb4"></label>
    </li>
  </ul>
</body>
</html>

它以base64数据格式保存。如何正确编码这些字符?

1 个答案:

答案 0 :(得分:0)

您可以使用此软件包解决utf-8问题。

https://www.npmjs.com/package/js-base64

https://www.npmjs.com/package/js-base64

node.js

var Base64 = require('js-base64').Base64;

es6 +

import { Base64 } from 'js-base64';

然后只编码和解码字符串

Base64.encode('şçiadşaqüğkmkanİæa');   
Base64.encodeURI('şçiadşaqüğkmkanİæa');  

Base64.decode('ZGFua29nYWk=');