ConverterArrayjsArrayshufflesortuniqueCharsetsbomiso2022EscapesoverlongUTF8unicodeNormalizationunicodeTruncationus_asciiencodedecodedecode → encodeutf16encodedecodedecode → encodeutf16BEencodedecodedecode → encodeutf16LEencodedecodedecode → encodeutf7encodedecodedecode → encodeutf8BytesHexCompressiondeflateencodedecodedecode → encodegzipencodedecodedecode → encoderawDeflateencodedecodedecode → encodeConditionsisJsoncheckisNumericcheckConvertaiautodecodebase32encodedecodedecode → encodebase58encodedecodedecode → encodebase62encodedecodedecode → encodebase64encodedecodedecode → encodebase64Urlencodedecodedecode → encodebase85encodedecodedecode → encodebase91encodedecodedecode → encodebinaryencodedecodedecode → encodecssEscapeencodedecodedecode → encodedecencodedecodedecode → encodeextractAsciifullWidthhexencodedecodedecode → encodehexBytesencodedecodedecode → encodehexEscapeencodedecodedecode → encodehexSpaceencodedecodedecode → encodehtmlencodedecodedecode → encodeinvisibleUnicodeencodedecodedecode → encodejsjsAsyncmalformedUrlencodedecodedecode → encodeoctalencodedecodedecode → encodephpChrencodedecodedecode → encodepunycodeencodedecodedecode → encodetemplateStringExpressionunicodeencodedecodedecode → encodeunicodeEs6encodedecodedecode → encodeurlencodedecodedecode → encodeurl_allencodedecodedecode → encodezalgozbase32encodedecodedecode → encodeEmailencodedWordencodedecodedecode → encodeencodedWordMetapercentRoutepunyCommaSplitpunyStyleOpensmtpParametersunicodeOverflowunicodeOverflowVariationsuucpBangEncryptrot13rot47xorHashintegritymd4md5shaIPdword2iphex2ipip2dwordip2hexip2octoct2ipMathbasepermuterangeSQLisqlCharencodedecodedecode → encodesqlChrencodedecodedecode → encodesqlHexStringcapitalisefindfromCodePointlowerpadStartprefixSuffixrepeatreplaceAllreplaceAllRegexreversesplitJointoCodePointupperUnicodeinvisibleSeparatorleftToRightOverridelineSeparatornextLineCharparagraphSeparatorrightToLeftOverridestrikethroughunicodeEffectunicodeWhitespaceupsideDownUnicodeencodedecodedecode → encodewordJoinerzeroWidthJoinerzeroWidthNoBreakSpacezeroWidthNonJoinerzeroWidthSpaceUtilsformatJsonVariablesgetVariablesetVariableXMLformatXmlnestxmlEntityxmlToJsonXSScdataevalFromCodePointhasegawajsFuckmathmlrestrictedVectorssvgsvgScriptCommentternarytoStringObfuscatorvectorsArrayjsArrayshufflesortuniqueCharsetsbomiso2022EscapesoverlongUTF8unicodeNormalizationunicodeTruncationus_asciiencodedecodedecode → encodeutf16encodedecodedecode → encodeutf16BEencodedecodedecode → encodeutf16LEencodedecodedecode → encodeutf7encodedecodedecode → encodeutf8BytesHexCompressiondeflateencodedecodedecode → encodegzipencodedecodedecode → encoderawDeflateencodedecodedecode → encodeConditionsisJsoncheckisNumericcheckConvertaiautodecodebase32encodedecodedecode → encodebase58encodedecodedecode → encodebase62encodedecodedecode → encodebase64encodedecodedecode → encodebase64Urlencodedecodedecode → encodebase85encodedecodedecode → encodebase91encodedecodedecode → encodebinaryencodedecodedecode → encodecssEscapeencodedecodedecode → encodedecencodedecodedecode → encodeextractAsciifullWidthhexencodedecodedecode → encodehexBytesencodedecodedecode → encodehexEscapeencodedecodedecode → encodehexSpaceencodedecodedecode → encodehtmlencodedecodedecode → encodeinvisibleUnicodeencodedecodedecode → encodejsjsAsyncmalformedUrlencodedecodedecode → encodeoctalencodedecodedecode → encodephpChrencodedecodedecode → encodepunycodeencodedecodedecode → encodetemplateStringExpressionunicodeencodedecodedecode → encodeunicodeEs6encodedecodedecode → encodeurlencodedecodedecode → encodeurl_allencodedecodedecode → encodezalgozbase32encodedecodedecode → encodeEmailencodedWordencodedecodedecode → encodeencodedWordMetapercentRoutepunyCommaSplitpunyStyleOpensmtpParametersunicodeOverflowunicodeOverflowVariationsuucpBangEncryptrot13rot47xorHashintegritymd4md5shaIPdword2iphex2ipip2dwordip2hexip2octoct2ipMathbasepermuterangeSQLisqlCharencodedecodedecode → encodesqlChrencodedecodedecode → encodesqlHexStringcapitalisefindfromCodePointlowerpadStartprefixSuffixrepeatreplaceAllreplaceAllRegexreversesplitJointoCodePointupperUnicodeinvisibleSeparatorleftToRightOverridelineSeparatornextLineCharparagraphSeparatorrightToLeftOverridestrikethroughunicodeEffectunicodeWhitespaceupsideDownUnicodeencodedecodedecode → encodewordJoinerzeroWidthJoinerzeroWidthNoBreakSpacezeroWidthNonJoinerzeroWidthSpaceUtilsformatJsonVariablesgetVariablesetVariableXMLformatXmlnestxmlEntityxmlToJsonXSScdataevalFromCodePointhasegawajsFuckmathmlrestrictedVectorssvgsvgScriptCommentternarytoStringObfuscatorvectorsInput:0 0&&||ExamplesConditions with check tagsEncode only if JSONBase64-encodes the input when it is valid JSON, and outputs nothing otherwise.<@check(isJson)>{"a":1}</@check> && <@encode(base64)>{"a":1}</@encode>Fixed text either wayPlain text works as an operand: a check picks one of two fixed values.<@check(isJson)>{"a":1}</@check> && valid JSON || not JSONNumber or notisNumeric passes only for digits, so this outputs the second text.<@check(isNumeric)>13a37</@check> && number || not a numberNegate a check! inverts a check, so this base64-encodes anything that is not a number.!<@check(isNumeric)>abc</@check> && <@encode(base64)>abc</@encode>Fallback when a tag failsA tag that throws counts as false, so || moves on to the fallback.<@check(isJson)>{}</@check> && <@decode(base64)>not base64!</@decode> || <@encode(base64)>fallback</@encode>&& binds tighter than ||Read as A || (B && C): the failed numeric check falls through to the JSON branch.<@check(isNumeric)>abc</@check> || <@check(isJson)>[1]</@check> && JSON listCondition inside a tagAn expression can sit inside another tag, so its result is encoded further.<@encode(base64)><@check(isJson)>{}</@check> && ok || nope</@encode>TagsJigsawOutput:0 0ClearClear tagsCopy as HTML← OutputSaveQR codeConvertAutodecoder↑ InputOptionsReal-time conversion (auto-convert when input changes)ExtrasDebugSelect inputSelect outputSend to HackPadSend to SnippetHistory«←(0/0)→»Clear historyJump to historyError!