Diskuze: SetDefaultCertificate FindBySerialNumber "Invalid hexadecimal string format"
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Dal som tvoj kód do googlu a hneď prvý odkaz:
https://social.msdn.microsoft.com/…tring-format?…
Možno nájdeš riešenie tam.
nech tam tu konstantu, nacti si serial number ze souboru nebo z kama a tesne pred timhle radkem si dej Console.WriteLine(loadedString == serialNum ); pokud to vypise false tak rozhodne ty stringy nejsou stejny. pokud to vypise true tak napis a podivam se na to protoze to neni mozne
Vďaka za reakciu ale v tom odkaze riešia iný problém, že keď
skopíruješ SN certifikátu tak treba vymazať medzery a špeciálny znak.
Je tam asi nejaký problém s kódovaním keďže ten string načítavam s xml
súboru.
Nakoniec som to vyriešil prevodom na pole bytov a späť na string v kódovaní
UTF8 s orezaním prvého znaku, ktorý sa tam objavil naviac.
byte[] bytes = Encoding.Default.GetBytes(serialNum);
serialNum = Encoding.UTF8.GetString(bytes).Remove(0, 1);
porovnanie skončí false ale na pohľad sú rovnaké viď obrázok.
teraz som sa stým trochu viac pohral a zistil som, že ani to moje riešenie s
orezaním nefunguje vždy, niekedy sa po prevode pridá pred reťazec jeden
otáznik, niekedy dva, niekedy tri. Tak neviem čo teda s tým vyriešim.
tak nakoniec som si to prešiel znak po znaku a sú tam na začiatku znaky 0x200E tak som to ošetril aby skopírovalo len použitelné znaky a je to OK.
foreach (char a in serialNum)
{
if(a<='f')
serialNum2 += a;
}
PS: ako sa tu da upravit prispevok?
Zobrazeno 6 zpráv z 6.