Red de conocimiento informático - Aprendizaje de código fuente - Convierta fácilmente caracteres chinos a codificación utf8

Convierta fácilmente caracteres chinos a codificación utf8

.Versión 2

. Especificación de biblioteca de soporte

. Subrutina CometURL_Encoding_UTF8,? Tipo de texto, público,? ¿Devuelve la URL codificada? Texto, borrable, versión GBK

. ¿parámetro? Conjunto de bytes, ?nulo, unicode

. Variable local local_data, conjunto de bytes

. Variable local local_data1, conjunto de bytes

. Variable local i, tipo entero

. Variable local ?ii, tipo de texto

. Variable local temporal, conjunto de bytes

. Si (Bin_URL≠? "")

Local_Data?= byteset(Ansi a Utf8?(Bin_URL))

De lo contrario

¿Comet URL Decode_UTF8? (un conjunto de bytes), ?temporal)

Local_Data?=?Unicode a Utf8?(temporal)?{?0?}

¿Salida de depuración? (¿al texto?(local_data),? "uni")

.If end

Local_data =? ¿Tomar el lado izquierdo del conjunto de bytes? (local_data,? ¿Obtener la longitud del conjunto de bytes? (local_data)? -? 1)

. ¿El primero del ciclo de conteo? (tomar byteset_length?(local_data),?i)

. si (a entero(local_data[i])) ≥ 48, y (a entero(local_data[i])) ≤ 57, o (a entero(local_data[i])) ≥ 65, y (a entero(local_data[i] ]) ])) ≤ 90, o (a un número entero (local_data [i])) ≥ 1, entonces (a un número entero (local_data [i]))

. (local_data[i])≥?65?y?a un entero?(local_data[i])≤?90?o?a un entero?(local_data[i])≥?97?y?a un entero?(local_data [i] )≤?122)

ii?=?ii ?(datos_locales? [i])

. De lo contrario

ii? ""? ¿Obtener texto hexadecimal? (datos_locales? [i])

. Si termina

¿Calcular la hora de finalización del ciclo? ()

Devolver ?(ii)

.Subrutina ?ansi a Utf8, ? byteset

.Parámetro texto ansi, tipo de texto

Volver (¿Unicode a Utf8?(¿Ansi a Unicode?(texto ansi)))

. ¿Subrutina? Conjunto de bytes

. Parámetros: texto ansi, tipo de texto

.

Variable local len, ?Entero, ?, ?, ?Unidad: ?Variable local ?Unicode byteset, ?Byteset

len=?MultiByteToWideChar(936,?0,?AnsiText,?-1,?{? } ,?0)

Conjunto de bytes Unicode =? Obtiene el conjunto de bytes en blanco (len x 2)

MultiByteToWideChar(936,?0,?AnsiText,?-1,? Unicode conjunto de bytes, ?len?×?2)

Devuelve ?(conjunto de bytes Unicode)

. Subrutina Unicode a Utf8, conjunto de bytes

. Parámetro Unicode byteset, byteset

Variable local ?utf8_len, ?entero

. Variable ?uft8,? conjunto de bytes

unicode_len?=?Obtener la longitud del conjunto de bytes (conjunto de bytes Unicode)?÷?2

utf8_len?=?WideCharToMultiByte?(65001, ?0,?Unicode byteset,?unicode_len,?uft8,?0,?0,?0)

uft8?=?¿Obtener el conjunto de bytes en blanco?(utf8_len)

' ?¿Salir texto de depuración? (utf8_len)

WideCharToMultiByte?(65001, ?0, ?Unicode byteset, ? -1, ?uft8, ?utf8_len, ?0, ?0)

Devuelve ?(uft8)

Los caracteres chinos son GBK, complete los caracteres chinos que se convertirán en el parámetro 1 de la codificación URL de Comet y el valor de retorno es UTF8