Alkampfer's Place

Il blog di Gian Maria Ricci
posts - 659, comments - 871, trackbacks - 80

My Links

News

Gian Maria Ricci Mvp Logo CCSVI in Multiple Sclerosis

English Blog

Tag Cloud

Article Categories

Archives

Post Categories

Image Galleries

I miei siti

Siti utili

Oggi giornata strana

In un progetto web ad un certo punto vedo che in una certa pagina il layout è tutto sballato, la pagina in questione ha una funzione che renderizza dell'html dentro una label, cosi penso che la funzione sia sbagliata.

Vado in debug e non trovo nulla di strano, fino a che non mi rendo conto che dal database arriva una stringa di testo che visivamente ha tipo un 250 caratteri ma la sua length è 989.......guardate che caratteri contiene ad un certo punto

image

In sostanza il carattere dal 260 al 265 sono una serie di nothing ... se faccio un Text.Encoding.Unicode.GetBytes(previewData) e vado a vedere attorno alla posizione incriminata trovo

image

L'array di byte restituito da Text.Encoding.Unicode.GetBytes(previewData) ha 1978 caratteri ed è giusto visto che la lunghezza della stringa la da com e989, peccato che internamente ci siano una sequenza di zeri e dato che 00 00 è il terminatore stringa unicode, purtroppo la stringa viene gestita male e crea casino con l'update panel. Se infatti vado a vedere nel fiddler cosa viene passato trovo questo pezzetto

"completa \ÿ\\ÿ\\ÿ\\ÿ\\ÿ\\ÿ\Dal primo"

Ovvero ci sono dei caratteri che nemmeno il fiddler riesce a renderizzare, questo significa che poi il javascript dell'update panel probabilmente va in errore dato che gli arriva uno stream di caratteri non validi......

A qualcuno è già capitato??

Alk.

Print | posted on mercoledì 23 aprile 2008 17:47 | Filed Under [ ASP.NET ]

Feedback

Gravatar

# re: Oggi giornata strana

Commento subito. lo standard ECMA 334 dice che

Note: The automatic null-termination of strings is particularly convenient when calling external APIs that
expect “C-style” strings. Note, however, that a string instance is permitted to contain null characters. If such
null characters are present, the string will appear truncated when treated as a null-terminated char*. end
note

Quindi è prettamente legale avere caratteri nulli in una stringa, peccato che se poi lo mettete dentro un literal html e usate un update panel questo vada a farsi friggere :D

Alk.
23/04/2008 17:57 | Gian Maria
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET