У меня есть база данных (postgres), которая не может принимать символы Unicode, но они вводятся как Unicode из Coldfusion. Я конвертирую их в ascii, как показано здесь, и сохраняю их в базе данных. Это прекрасно работает, и вот код, который я использую для преобразования чьего-либо имени (содержащего китайские / корейские символы и т. Д.) В ascii.
<cfset strLen = len(#URL.firstName#)>
<cfset tempCharAll = 'START_TAG'>
<cfloop from="1" to="#strLen#" index="i">
<cfset current_char = mid(#URL.firstName#,i,1)>
<cfset tempChar = formatBaseN(asc(current_char),16)>
<cfset tempCharAll = tempCharAll & tempChar >
</cfloop>
<cfset #URL.lastName# = #tempCharAll#>
<cfset #URL.firstName# = #tempCharAll#>
Теперь, как мне изменить это и заставить coldfusion преобразовать что-то обратно в юникод, чтобы при входе в систему и т.д. отображались правильные корейские / китайские символы?
Спасибо.
Этот код не работает:
Если я использую этот код:
<CFOUTPUT> input:</br></br></CFOUTPUT>
<cfset tempChar = "t">
<CFOUTPUT> #tempChar#</br></br></CFOUTPUT>
<cfset tempChar = formatBaseN(asc(current_char),16)>
<CFOUTPUT> encoded:</br></br></CFOUTPUT>
<CFOUTPUT> #tempChar#</br></br></CFOUTPUT>
<cfset varCoded = CharsetDecode(tempChar, "windows-1252")>
<cfset strUnEncoded = CharsetEncode(varCoded, "utf-8")>
<CFOUTPUT> decoded:</br></br></CFOUTPUT>
<CFOUTPUT> #strUnEncoded#</br></br></CFOUTPUT>
Затем он выводит 74 для декодирования и кодирования, когда он должен вывести «t» для декодирования