如何使用JavaScript粘贴原始二进制文件而不出现“无效字符”错误

How can I paste raw binary with JavaScript without getting `Invalid character` errors?

本文关键字:无效 字符 无效字符 错误 JavaScript 何使用 原始 二进制文件      更新时间:2023-09-26

我需要为解密文件的方法编写一个单元测试。这是我想要使用的输入:

"19;2
8I?ßλ#®^ò}ÓزÒáÑûÙ³8r¤:zihR@{Òwò+_'ÈC`.D0e´IƧø5'¨¡,
    6ßÔ×q¿ÜEuþ¬ÎÎÜ{GkkÁ4Ôþ'W_ؼV+õɨ±(Ç5
3´'Ì­¦=:¶ßNÉ©6'TÒ
]ÜR°HS7¾èpz;Æ    ^e¶b¼s´CÛMd¨J+Íÿ*IC(p*ä»ìÓ³MÛWpýD«8#
 'îfYO¨oA­y #¡»3~k¤á¶|ºÈ°æßxâa·j'%EëAðÿ*ôPÚ1m/ÜídmuWØ#¹ 4Ö;+3íMøy}'Fh)VREvxáÊ7WCQ§*¨_m!GmHbd¹À)¬g-TyÅÑR,}þ3Ák (Ëq¼¨;^æ¦nW¯Mö®ÎXâcÜü¬Q&ͼà¢Ý´¢/ílgj±ÙÐeÎó/h-/þ«±uÑ#;÷¼ím÷    1ÀBÐóÓ1z©ÄZDdí©¯qݸü)V.§ú­ÇÌ4FÀüºÜwåvÖçQÍN¿A¬
0ßÇ.±>C¢hÍFè    %*©ð/»55õnq÷3è«ýL/ VèûëÄʺmIù¯46¦ñÚ@ÙÍf5½K(Ï
°»Å¡Àþ$Bó¥ º]Pº<v@_·ÖnYÑ¿ó?¯'GfÿÐH¹¾=RêYH´Ä·jÅ(uäþJkw{LôÇ«_L0lÄlLr¹¤å+C?ùÕòÔñǼHaÁG"

当我尝试将这个字符串复制并粘贴到我的文件中,并使用Karma和PhantomJS运行Jasmine测试时,我的终端会抛出以下错误:Error: Invalid character () in string:

我意识到有一些特殊的字符需要转义,但由于字符集是唯一的,我无法手动转义,所以我尝试使用在线工具为我转义内容,这产生了以下文本:

'"19;2'r'n8'u0088I?'u0007'u00DF'u00CE'u00BB#'u00AE^'u00F2}'u00D3'u00D8'u00B2'u0011'u0099'u00D2'u00E1'u00D1'u00FB'u00D9'u00B38r'u00A4:zihR@{'u00D2w'u00F2+_'''u00C8'u008EC`'u0011'f.'u001AD0e'u00B4'u0085'u009FI'u00C6'u00A7'u00F85'''u00A8'b'u00A1,'r'n't6'u0098'u00DF'u0017'u00D4'u0083'u00D7q'u00BF'u001E'u00DCEu'u00FE'u00AC'u00CE'u00CE'u0087'u008B'u00DC{'u0013Gkk'u00C1'u00064'u0091'u001E'u00D4'u00FE'u0092'u001B'u0080''W_'u0012'u001B'u00D8'u00BC'u0097V+'u008A'u0099'u00F5'b'u00C9'u00A8'u0007'u0003'u00B1('u00C7'u00875'u001D'r'n3'u00B4'''u00CC'u00AD'u00A6'u0080='u0081:'u00B6'u00DFN'u00C9'u0097'u00A9'u00986''T'u00D2'r'n]'u00DCR'u000B'u008D'u0092'u00B0'u0014H'u0010S7'u00BE'u00E8pz'f'u008A;'u00C6't^'u0081e'u00B6b'u00BCs'u0082'u00B4C'u00DBM'u009Fd'u00A8J+'u00CD'u00FF*'u009EIC(p*'u00E4'u00BB'u00EC'u00D3'u0088'u00B3M'u009D'u00DB'bWp'u00FD'u0098'u001CD'u009A'b'u000F'u00AB8#'u0011'r'n '''u00EEfYO'u00A8'u0007'u009BoA'u00ADy'u001C'u008A'u0086 #'u00A1'u00BB'u00883'u0014~k'u00A4'u00E1'u0094'u00B6|'u00BA'u00C8'u008B'u00B0'u00E6'u008B'u00DF'u0014'u001Cx'u00E2'u009Ea'u00B7j'u009D'u0088''%E'u0013'u0083'u001B'u00EBA'u00F0'u00FF*'u00F4P'u00DA'u008D1'u009Bm'/'u008D'u00DC'u00EDdmu'u0093W'u00D8#'u00B9 'u00984'u00D6;+'u00843'u0012'u00EDM'u00F8y}''Fh)V'u0090REvx'u0090'u00C3'u0010'u00A1'u00CA7'u0006WCQ'u00A7*'u008D'u00A8_m'u001B!GmH'u0097'u008D'u0099bd'u00B9'u00C0'u0019)'u00AC'u0087g'u0096'u008E-T'fy'u0010'u001C'u009D'u00C5'u00D1R,}'u00FE3'u00C1k ('u00CBq'u0094'u00BC'u00A8;^'u00E6'u00A6'u008A'u0002'u001EnW'u0091'u00AF'fM'u00F6'u0013'u00AE'u008C'u009C'u00CEX'u00E2c'u00DC'u00FC'u00ACQ&'u00CD'u00BC'u00E0'u0086'u00A2'u00DD'b'u000B'u00B4'u00A2'u0085'/'u009F'u00EDlgj'u00B1'u00D9'u00D0e'u0003'u00CE'u00F3'/'u009C'u0011h'u0083-'/'u00FE'u00AB'u00B1'u0098'u009Cu'u00D1#'f;'u00F7'u0007'f'u00BC'u00EDm'u009E'u00F7't1'u00C0B'u0005'u00D0'u00F3'u00D31'u0001'u000Fz'u00A9'u00C4Z'u001DDd'u00ED'u001F'u00A9'u00AFq'u00DD'u00B8'u00FC)V.'u001B'u0014'u00A7'u00FA'u000B'u00AD'u00C7'u00CC4F'u00C0'u008B'u00FC'u00BA'u0091'u00DC'u001Bw'u00E5'u0099v'u00D6'u00E7Q'u00CD'u0094N'u00BF'u001B'u009BA'u00AC'r'n0'u00DF'u00C7.'u00B1>C'u00A2h'u00CDF'u00E8't%*'u0004'u00A9'u00F0'/'u00BB'u0006'u000355'u00F5'u0001'u0088nq'u00F73'u00E8'u00AB'u00FD'u0007L'/ V'u0005'u00E8'u00FB'u00EB'u00C4'u00CA'u00BA'u0002mI'u008E'u00F9'u00AF4'u00886'u00A6'u00F1'u00DA'u0095@'u00D9'u00CDf5'u00BD'u001BK('u00CF'r'n'u0080'u00B0'u00BB'u00C5'u009C'u00A1'u00C0'u0092'u00FE$B'u00F3'u008C'u00A5'u008C't'u00BA]P'u00BA'u009B'u0097<v@_'u00B7'u00D6nY'u0011'u00D1'u00BF'u00F3?'u00AF'u009E''Gf'u00FF'u001D'u00D0H'u00B9'u009C'u0099'u00BE=R'u0096'u00EA'u008CYH'u00B4'u00C4'u0011'u00B7j'u00C5(u'u000F'u00E4'u00FEJ'u009B'u008B'u001Dk'u0099'u009E'u0011w'u0092{L'u0097'u00F4'u00C7'u00AB'u0083_L0l'u0012'u0085'u00C4lLr'u00B9'u00A4'u00E5+'u0085C?'u00F9'u00D5'u00F2'u00D4'u00F1'u00C7'u00BCHa'u00C1G'"

当我用这个运行测试时,我会得到同样的错误。

如何使用JavaScript粘贴二进制文件而不出现Invalid character错误?

您应该能够在每行的末尾添加'

var str = "19;2'
8I?ßλ#®^ò}ÓزÒáÑûÙ³8r¤:zihR@{Òwò+_'ÈC`.D0e´IƧø5'¨¡,'
    6ßÔ×q¿ÜEuþ¬ÎÎÜ{GkkÁ4Ôþ'W_ؼV+õɨ±(Ç5'
3´'Ì­¦=:¶ßNÉ©6'TÒ'
]ÜR°HS7¾èpz;Æ    ^e¶b¼s´CÛMd¨J+Íÿ*IC(p*ä»ìÓ³MÛWpýD«8#'
 'îfYO¨oA­y #¡»3~k¤á¶|ºÈ°æßxâa·j'%EëAðÿ*ôPÚ1m/ÜídmuWØ#¹ 4Ö;+3íMøy}'Fh)VREvxáÊ7WCQ§*¨_m!GmHbd¹À)¬g-TyÅÑR,}þ3Ák (Ëq¼¨;^æ¦nW¯Mö®ÎXâcÜü¬Q&ͼà¢Ý´¢/ílgj±ÙÐeÎó/h-/þ«±uÑ#;÷¼ím÷    1ÀBÐóÓ1z©ÄZDdí©¯qݸü)V.§ú­ÇÌ4FÀüºÜwåvÖçQÍN¿A¬'
0ßÇ.±>C¢hÍFè    %*©ð/»55õnq÷3è«ýL/ VèûëÄʺmIù¯46¦ñÚ@ÙÍf5½K(Ï'
°»Å¡Àþ$Bó¥ º]Pº<v@_·ÖnYÑ¿ó?¯'GfÿÐH¹¾=RêYH´Ä·jÅ(uäþJkw{LôÇ«_L0lÄlLr¹¤å+C?ùÕòÔñǼHaÁG";
console.log(str)