Pretvaranje u UTF-8

Mar 8, 2013 at 7:23 AM
Ima li neki jednostavni način pretvaranja stringova iz baze u UTF-8?
Ne prolaze mi, naravno, kvačice na adresi kod prijave poslovnog prostora.

(Nemam osjećaj da bi mi to trebalo od prijave računa, budući da tamo idu brojčice...)
Coordinator
Mar 8, 2013 at 10:16 AM
Edited Mar 8, 2013 at 10:25 AM
U connection string staviš charset = utf8.
Ili (ako koristiš objekt XmlWriter za serijalizaciju xml-a) stavi mu encoding property System.Text.UTF8Encoding.UTF8
Mar 8, 2013 at 2:33 PM
Edited Mar 8, 2013 at 2:34 PM
koristim COM dll i unutar VB radim string i taj string šaljem. Iako piše encoding.... unutar stringa, to samo PIŠE, on u stvarnosti nije utf-8 jer ne prolaze kvačice. Znači, u kojem bih dijelu trebala dodati što?
Dim sXml
sXml = "<?xml version=""1.0"" encoding=""utf-8""?>"
sXml = sXml & "<tns:PoslovniProstorZahtjev xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" Id=""signXmlId"" xmlns:tns=""http://www.apis-it.hr/fin/2012/types/f73"">"
   sXml = sXml & "<tns:Zaglavlje>"
      sXml = sXml & "<tns:IdPoruke>" & uuid & "</tns:IdPoruke>"
      sXml = sXml & "<tns:DatumVrijeme>" & DatumSlanja & "</tns:DatumVrijeme>"
   sXml = sXml & "</tns:Zaglavlje>"
sXml = sXml & "<tns:PoslovniProstor>"
   sXml = sXml & "<tns:Oib>" & Trim(Text35.Text) & "</tns:Oib>"
   sXml = sXml & "<tns:OznPoslProstora>" & Trim(Text26.Text) & "</tns:OznPoslProstora>"
   sXml = sXml & "<tns:AdresniPodatak>"
      sXml = sXml & "<tns:Adresa>"
         sXml = sXml & "<tns:Ulica>" & Trim(Text25.Text) & "</tns:Ulica>"
         sXml = sXml & "<tns:KucniBroj>" & Trim(Text27.Text) & "</tns:KucniBroj>"
         If Trim(Text28.Text) <> "" Then sXml = sXml & "<tns:KucniBrojDodatak>" & Trim(Text28.Text) & "</tns:KucniBrojDodatak>"
         sXml = sXml & "<tns:BrojPoste>" & Trim(Text29.Text) & "</tns:BrojPoste>"
         sXml = sXml & "<tns:Naselje>" & Trim(Text30.Text) & "</tns:Naselje>"
         sXml = sXml & "<tns:Opcina>" & Trim(Text31.Text) & "</tns:Opcina>"
      sXml = sXml & "</tns:Adresa>"
sXml = sXml & "</tns:AdresniPodatak>"
sXml = sXml & "<tns:RadnoVrijeme>" & Trim(Text32.Text) & "</tns:RadnoVrijeme>"
sXml = sXml & "<tns:DatumPocetkaPrimjene>" & Format(CDate(Datum1), "dd.MM.yyyy") & "</tns:DatumPocetkaPrimjene>"
sXml = sXml & "<tns:SpecNamj>24418126672</tns:SpecNamj>"
sXml = sXml & "</tns:PoslovniProstor>"
sXml = sXml & "</tns:PoslovniProstorZahtjev>"

odgovor = o.PosaljiSoapPorukuCertifikatDatoteka(sXml, putanja_cert, pwd_cert)
Mar 8, 2013 at 2:35 PM
Mislim, mogu ja prijaviti prostor i kao "Ulica ocerupanih kokosi" umjesto "Ulice očerupanih kokoši" ;) , ali bolje da bude kak treba, nikad se ne zna
Mar 8, 2013 at 2:46 PM
Gle, ja kreiram ovako i nema nikakvih problema: ima i naših znakova i sve prolazi. Podaci se citaju iz tablice.
' kreiramo XML
Dim xml
xml = "<?xml version=""1.0"" "
xml = xml & " encoding=""utf-8""?>"
xml = xml & "<tns:PoslovniProstorZahtjev xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" "
xml = xml & "Id=""signXmlId"" xmlns:tns=""http://www.apis-it.hr/fin/2012/types/f73"">"
xml = xml & "<tns:Zaglavlje><tns:IdPoruke>" & cStrUUID & "</tns:IdPoruke>"
xml = xml & "<tns:DatumVrijeme>" & cDatum & "</tns:DatumVrijeme>"
xml = xml & "</tns:Zaglavlje>"
xml = xml & "<tns:PoslovniProstor>"        
xml = xml & "<tns:Oib>" & CStr(m_rsOrdinacije.Fields("maticnibroj")) & "</tns:Oib>"    
xml = xml & "<tns:OznPoslProstora>" & CStr(Trim(m_rsOrdinacije.Fields("oznakaposlovnogprostora"))) & "</tns:OznPoslProstora>"    
xml = xml & "<tns:AdresniPodatak>"
xml = xml & "<tns:Adresa>"    
xml = xml & "<tns:Ulica>" & CStr(Trim(m_rsOrdinacije.Fields("adresaprodajnogmjesta"))) & "</tns:Ulica>"    
xml = xml & "<tns:KucniBroj>" & CStr(Trim(m_rsOrdinacije.Fields("kucnibrpm"))) & "</tns:KucniBroj>"    

If m_rsOrdinacije.Fields("dodatakkbrpm") <> "" Then
    xml = xml & "<tns:KucniBrojDodatak>" & CStr(Trim(m_rsOrdinacije.Fields("dodatakkbrpm"))) & "</tns:KucniBrojDodatak>"
End If 

xml = xml & "<tns:BrojPoste>" & Mid(m_rsOrdinacije.Fields("mjestoprodajnogmjesta"), 1, 5) & "</tns:BrojPoste>"    
Dim t As String
t = m_rsOrdinacije.Fields("mjestoprodajnogmjesta")
xml = xml & "<tns:Naselje>" & Mid(m_rsOrdinacije.Fields("mjestoprodajnogmjesta"), 7, Len(m_rsOrdinacije.Fields("mjestoprodajnogmjesta"))) & "</tns:Naselje>"    

xml = xml & "<tns:Opcina>" & CStr(Trim(m_rsOrdinacije.Fields("opcinapm"))) & "</tns:Opcina>"

xml = xml & "</tns:Adresa>"
xml = xml & "</tns:AdresniPodatak>"
xml = xml & "<tns:RadnoVrijeme>" & Trim(m_rsOrdinacije.Fields("radnovrijeme")) & "</tns:RadnoVrijeme>" 
xml = xml & "<tns:DatumPocetkaPrimjene>" & cDat & "</tns:DatumPocetkaPrimjene>"
xml = xml & "<tns:SpecNamj>" & cMaticniBroj & "</tns:SpecNamj>"    
xml = xml & "</tns:PoslovniProstor>"
xml = xml & "</tns:PoslovniProstorZahtjev>"
Coordinator
Mar 8, 2013 at 3:37 PM
Edited Mar 8, 2013 at 3:38 PM
Probaj ovako (u ASCII ili UTF varijanti):
(VB)
Dim mojXml As Byte() = System.Text.Encoding.UTF8.GetBytes(sXml)

Dim mojUTF8String As String = System.Text.Encoding.UTF8.GetString(mojXml)
Dim mojASCIIString As String = System.Text.Encoding.ASCII.GetString(mojXml)

odgovor = o.PosaljiSoapPorukuCertifikatDatoteka(mojUTF8String, putanja_cert, pwd_cert)
odgovor = o.PosaljiSoapPorukuCertifikatDatoteka(mojASCIIString, putanja_cert, pwd_cert)
(C#)
byte[] mojXml = System.Text.Encoding.UTF8.GetBytes(sXml);

string mojUTF8String = System.Text.Encoding.UTF8.GetString(mojXml);
string mojASCIIString = System.Text.Encoding.ASCII.GetString(mojXml);

odgovor = o.PosaljiSoapPorukuCertifikatDatoteka(mojUTF8String, putanja_cert, pwd_cert);
odgovor = o.PosaljiSoapPorukuCertifikatDatoteka(mojASCIIString, putanja_cert, pwd_cert);
Mar 9, 2013 at 11:35 AM
Ja isto koristim COM i u kod kreiranja XML-a ne konvertiram podatke u UTF8 nego ostaju u kodnoj stranici 1250.
Sve prolazi dobro, tj. u snimljenom XML-u su podaci konvertirani u UTF8.
Ako ja kod kreiranja XML-a podatke konvertiram u UTF8, tada podaci u snimljenom XML-u nisu dobri, tj. COM je moje već konvertirane stringove konvertirao još jednom.
Da li još netko ima takvih iskustava?
Već sam bio postavio ovo pitanje ovdje, ali nisam dobio konkretan odgovor.
Mar 9, 2013 at 11:55 AM
GoranV13 wrote:
Gle, ja kreiram ovako i nema nikakvih problema: ima i naših znakova i sve prolazi. Podaci se citaju iz tablice.
' kreiramo XML
Dim xml
xml = "<?xml version=""1.0"" "
xml = xml & " encoding=""utf-8""?>"
xml = xml & "<tns:PoslovniProstorZahtjev xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" "
xml = xml & "Id=""signXmlId"" xmlns:tns=""http://www.apis-it.hr/fin/2012/types/f73"">"
xml = xml & "<tns:Zaglavlje><tns:IdPoruke>" & cStrUUID & "</tns:IdPoruke>"
xml = xml & "<tns:DatumVrijeme>" & cDatum & "</tns:DatumVrijeme>"
xml = xml & "</tns:Zaglavlje>"
xml = xml & "<tns:PoslovniProstor>"        
xml = xml & "<tns:Oib>" & CStr(m_rsOrdinacije.Fields("maticnibroj")) & "</tns:Oib>"    
xml = xml & "<tns:OznPoslProstora>" & CStr(Trim(m_rsOrdinacije.Fields("oznakaposlovnogprostora"))) & "</tns:OznPoslProstora>"    
xml = xml & "<tns:AdresniPodatak>"
xml = xml & "<tns:Adresa>"    
xml = xml & "<tns:Ulica>" & CStr(Trim(m_rsOrdinacije.Fields("adresaprodajnogmjesta"))) & "</tns:Ulica>"    
xml = xml & "<tns:KucniBroj>" & CStr(Trim(m_rsOrdinacije.Fields("kucnibrpm"))) & "</tns:KucniBroj>"    

If m_rsOrdinacije.Fields("dodatakkbrpm") <> "" Then
    xml = xml & "<tns:KucniBrojDodatak>" & CStr(Trim(m_rsOrdinacije.Fields("dodatakkbrpm"))) & "</tns:KucniBrojDodatak>"
End If 

xml = xml & "<tns:BrojPoste>" & Mid(m_rsOrdinacije.Fields("mjestoprodajnogmjesta"), 1, 5) & "</tns:BrojPoste>"    
Dim t As String
t = m_rsOrdinacije.Fields("mjestoprodajnogmjesta")
xml = xml & "<tns:Naselje>" & Mid(m_rsOrdinacije.Fields("mjestoprodajnogmjesta"), 7, Len(m_rsOrdinacije.Fields("mjestoprodajnogmjesta"))) & "</tns:Naselje>"    

xml = xml & "<tns:Opcina>" & CStr(Trim(m_rsOrdinacije.Fields("opcinapm"))) & "</tns:Opcina>"

xml = xml & "</tns:Adresa>"
xml = xml & "</tns:AdresniPodatak>"
xml = xml & "<tns:RadnoVrijeme>" & Trim(m_rsOrdinacije.Fields("radnovrijeme")) & "</tns:RadnoVrijeme>" 
xml = xml & "<tns:DatumPocetkaPrimjene>" & cDat & "</tns:DatumPocetkaPrimjene>"
xml = xml & "<tns:SpecNamj>" & cMaticniBroj & "</tns:SpecNamj>"    
xml = xml & "</tns:PoslovniProstor>"
xml = xml & "</tns:PoslovniProstorZahtjev>"

Možda je tvoja baza OK kodirana, moja je prastara :/
Mar 9, 2013 at 12:10 PM
A koja je baza u pitanju ?
Mar 9, 2013 at 2:38 PM
Edited Mar 9, 2013 at 2:46 PM
ah, na tom jednom (i jedinom mjestu koji stvara problem) je Access 97. Znam, znam...
Mar 9, 2013 at 4:36 PM
Amalthea wrote:
ah, na tom jednom (i jedinom mjestu koji stvara problem) je Access 97. Znam, znam...
A zakaj ne napravis konverziju u 2003?
Ne vidim nikakav razlog da to ne napravis.