【问题标题】:javascript encode text by escaping forward slash using backward slashjavascript通过使用反斜杠转义正斜杠来编码文本
【发布时间】:2019-01-14 07:04:59
【问题描述】:

我有一个文本,它是一个 base 64 字符串,我想通过使用 \/ 转义特殊字符 / 来对该 base64 代码进行编码。

我用过encodeURIComponentstr.replace(/\//g, '\\/'); 但它会得到带有\/的字符串

如果我用一个例子来说明更多

base64string

"samplebase64/samplebase64/samplebase64/samplebase64+samplebase64"

我需要这个转换成

base64encodedstring

"samplebase64\/samplebase64\/samplebase64\/samplebase64+samplebase64"

【问题讨论】:

  • 你的第二个字符串是=== 到你的第一个字符串,你的意思是"samplebase64\\/sample...? (要使用单个反斜杠表示单个文字反斜杠,请使用 String.raw
  • 不,我刚刚创建了一个变量来显示需要转换的字符串。
  • 好的,但是您列出的字符串是相同的 - 最好澄清第二个字符串包含文字反斜杠(而不是不必要的转义字符)
  • 它的第一个字符串不一样,只有“/”,第二个字符串是“\/”,这就是我需要的

标签: javascript string base64 decode encode


【解决方案1】:

将 base 64 字符串中的所有“/”字符替换为“%2F”,或者将 encodeURIComponent 与 base64 字符串中的“/”一起使用。请注意,如果结构化 URL 中包含多个 Base64 字符串,则必须分别对它们使用 encodeURIComponent

var myOrderedBase64Array = ['base/641', base/642];    

var uri = myOrderedBase64Array.map(function(item){

   return encodeURIComponent(item);
}).join('/');

【讨论】:

  • 我需要的是不要将其更改为“%2F”,我需要将“\/”放在我想将其保存为 json 的字符串中。导致我从另一个 java 代码中读取这个。所以为了使其兼容,我需要将其更改为“\/”而不是“%2F”
猜你喜欢
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 2013-11-10
  • 2012-05-17
  • 1970-01-01
  • 2016-08-07
  • 2014-09-28
相关资源
最近更新 更多