Red de conocimiento informático - Material del sitio web - Conversión de codificación de direcciones

Conversión de codificación de direcciones

Encontré un problema relacionado con la dirección: la dirección del contrato recién generada es esencialmente la misma que otras direcciones, sin embargo, una matriz de bytes de 32 bytes, al intentar convertir la dirección en caracteres adecuados para la lectura humana; el resultado convertido son caracteres confusos.

Cada byte está representado por un número binario de 8 bits, y los 256 caracteres posibles representados específicamente por estos números binarios de 8 bits están claramente definidos en el código ASCII.

El problema es que sólo algunos de estos 256 caracteres son los caracteres que normalmente entendemos:

Por lo tanto, cuando la dirección se convierte en una cadena para su visualización, los valores fuera de los anteriores rango se muestran sólo puede ser en una forma que no podemos entender, es decir, un galimatías.

Dado que el código confuso se muestra porque el código ASCII excede el rango requerido, puede usar un determinado método de codificación para codificar el valor binario de modo que quede dentro del rango que se puede mostrar normalmente.

En cuanto a la implementación específica del método de codificación, alguien ya lo ha hecho. Ya no necesitamos reinventar la rueda, simplemente podemos usarla directamente.

La implementación específica incluye series de codificación Base: Base64, Base32 y Base16.

Aquí se utiliza la codificación Base32:

Sus características son:

Entonces practiquémoslo:

El resultado son 56 palabras El byte La matriz de sección excede la longitud de 32 bytes que necesitamos.

Eche un vistazo más de cerca al principio de codificación Base32:

En este proceso de codificación, la longitud de la matriz de bytes sin duda se ampliará. Después del cálculo, la matriz de bytes es de 32 bytes. se amplía a 56 Una matriz de bytes de bytes y si se requiere que el resultado final sea una matriz de bytes de 32 bytes, el valor de entrada debe ser una matriz de bytes de 20 bytes.

La forma de obtener una matriz de bytes de 20 bytes es muy simple:

Elegimos el segundo método porque los resultados generados por la operación hash son difíciles de duplicar. es interceptado, no hay garantía.

Verifica el resultado:

De esta manera, obtendremos la dirección de cadena que necesitamos y que se puede mostrar normalmente.

上篇: ¿Cómo utilizar Aspose.Mail Merge para generar múltiples documentos? Generar múltiples documentos requiere múltiples combinaciones de correspondencia. Si necesita incluir todos los datos de la fuente de datos en un solo archivo, debe hacer lo siguiente: recorrer todas las filas de la tabla de datos. Cargue (o copie) el documento original antes de la combinación de correspondencia. Realice una combinación de correspondencia y guarde el archivo. Puede cargar el archivo de plantilla desde un archivo o flujo de datos antes de cada combinación de correspondencia, pero generalmente es más rápido cargar el documento una vez y luego copiarlo desde la memoria antes de cada combinación de correspondencia. Es importante tener en cuenta que para realizar una combinación de correspondencia, debe tener un archivo de plantilla adecuado. La plantilla puede ser una plantilla de Microsoft Word o un documento normal de Microsoft Word, pero debe contener el campo MERGEFIELD en el que se insertan los datos. El nombre de cada campo debe ser el mismo que el campo correspondiente en la fuente de datos. C # usando System.Data; usando System.Data.OleDb; usando System.IO; usando Aspose.Words; espacio de nombres MultipleDocsInMailMerge { class Program { public static void Main(string[] args) { // Infraestructura de muestra. string exeDir = Path.GetDirectoryName( Assembly.GetExecutingAssembly().Location) + Path.DirectorySeparatorChar; string dataDir = new Uri(new Uri(exeDir), @".../.../Data/").LocalPath; (dataDir, "TestFile.doc"); } public static void ProduceMultipleDocuments(string dataDir, string srcDoc) { // Abre la conexión de la base de datos string connString = @"Provider=Microsoft.Jet.OLEDB.4..0;Data Source. =" + dataDir + "Customers.mdb"; } public static void ProduceMultipleDocuments(string dataDir, string srcDoc) { // Abre la conexión de la base de datos. 下篇: El propósito de la marca Orlevi