我需要将字符串转换为UTF8编码格式,我不知道如何继续。
ColdFusion中是否有任何函数将字符串转换为UTF-8,例如在此website上?
例如,在“stackoverflow.com/questions/ask”中输入上述网站即可得到结果:
\ X73 \ X74 \ X61 \ X63 \ X6B \ x6F \ X76 \ X65 \ X72 \ X66 \ X6C \ x6F \ X77 \ X2E \ X63 \ x6F \ X6D \ X2F \ X71 \ X75 \ X65 \ X73 \ X74 \ X69 \ x6F \ x6E \ X73 \ X2F \ X61 \ X73 \ X6B
我对编码不太熟悉,但我的指示是将字符串编码为UTF-8。我给出的例子给出了下面的编码结果。
/ RE / R / 434 /吨// 4R3 / T434 /4吨/ T3 / 3 /4吨/ 43tt / 53 /
我不确定这是否是编码字符串的真实表示,或者它是否只是输入以提供可视化示例。是否有这样的格式?它与第一个例子的格式不同吗?
谢谢!
答案 0 :(得分:4)
我认为您可以使用CharsetDecode()和CharsetEncode()的组合来完成此任务。
<cfset my_string = "test">
<cfset binary_my_string = CharsetDecode(my_string, "ASCII")>
<cfset utf8_my_string = CharsetEncode(binary_my_string, "utf-8")>
您只需要在我的示例中用the correct initial encoding替换&#34; ASCII&#34; 。
答案 1 :(得分:1)
<cfset str = "stackoverflow.com/questions/ask">
<cfset hexStr = "">
<cfloop index="i" from="0" to="#len(str)-1#">
<!--- Pick out each character in the string. Remember that charAt() starts at index 0. --->
<cfset ch = str.charAt(i)>
<!--- The decimal value of the Unicode character. ColdFusion uses the Java UCS-2 representation of Unicode characters, up to a value of 65536. --->
<cfset charDecVal = asc(ch)>
<!--- The decimal value of the character, upper-casing the letters.--->
<cfset charHexVal = uCase(formatBaseN(charDecVal,"16"))>
<!--- Append the characters together into a Hex string, using delimiter '\x' --->
<cfset hexStr = hexStr & "\x" & charHexVal>
</cfloop>
<cfscript>
writeoutput(hexStr);
</cfscript>