文章目录
前言ts环境准备ts中对utf8字符串进行base64编码
前言
完整代码见仓库。
ts环境准备
参考:如何建立一个新的 TypeScript 项目
# npm install -g ts-nodenpm install -g typescripttsc.cmd --init
我之前安装过nodejs环境:fetch的简单使用。所以不再需要安装nodejs。
我们使用npm
安装typescript。关于npm的使用,可以参考npm 模块安装机制简介。至于typescript是一种用于应用程序级 JavaScript 的语言,可以将ts编写的程序编译成js。安装typescript的时候,会包含tsc。
注:上面参考链接中,使用了npx
,它可以调用项目内部模块,避免全局安装,可以参考:npx 使用教程。
接着,我们使用tsc.cmd --init
,创建一个tsconfig.json。tsconfig.json文件中指定了用来编译这个项目的根文件和编译选项。
ts中对utf8字符串进行base64编码
参考:Using Javascript’s atob to decode base64 doesn’t properly decode utf-8 strings
使用js-base64对utf8字符串进行base64编码。
npm install --save js-base64# 安装package.json中的依赖# npm install# npm uninstall typescript
我用demo测了下,应该能用。
import { Base64 } from 'js-base64'console.debug("hello world")const str = "中文"// Base64console.debug(Base64.encode(str))console.debug(Base64.decode(Base64.encode(str)))
先编译,tsc.cmd
命令按照tscconfig.json
中的配置进行编译,生成js。node.exe .\dist\index.js
,使用node
命令运行js程序。输出如下。
hello world5Lit5paH中文
另外,ts中不能使用下面的方式进行编码转换。会编译报错ReferenceError: window is not defined。原因是nodejs中不能使用window对象,可参考在node.js里面可以使用window对象的方法吗
// window.btoaconsole.debug(window.btoa(str))console.debug(window.atob(window.btoa(str)))``