Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

web service and greek characters

Îåêßíçóå áðü ôï ìÝëïò alex_VB. Τελευταία δημοσίευση από το μέλος Αλέξανδρος Δημητρίου στις 23-11-2010, 16:26. Υπάρχουν 6 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  19-11-2010, 12:59 60978

    web service and greek characters

      Καλησπέρα. Έχω δημιουργήσει ένα web service το οποίο κάνει καταχώρηση πελατών σε μία βάση δεδομένων SQL 2005.

    Όλα τα string πεδία της βάσης μου είναι nvarchar.

    Παρόλα αυτά όταν καλώ το web service οι ελληνικοί χαρακτήρες καταχωρούνται στη βάση μου με ερωτηματικά.

     

    Ο τρόπος που καλώ το web service είναι με κάποιο vbscript που βρήκα στο ιντερνετ το οποίο κάνει post ένα xml αρχείο στο σχήμα που απαιτεί το web service.

    Όλες οι διαδικασίες λειτουργούν κανονικά πλην την καταχώρηση των ελληνικών χαρακτήρων.

    Όταν καλώ το web service από το τέστ περιβάλλον αυτό καταχωρεί ελληνικά κανονικά.

    Ξέρει κανείς τι μπορεί να φταίει?

     

     

     


    www.myautos.gr
  •  19-11-2010, 13:21 60980 σε απάντηση της 60978

    Απ: web service and greek characters

    Η συζήτηση για τα ελληνικά έχει γίνει πολλές φορές και η απάντηση είναι πάντα "παίζουν πάντα εκτός κι αν τα χαλάσεις". Εφόσον χρησιμοποιείς nvarchar πεδία στη βάση, ο κώδικας του web service σου δουλεύει με Unicode strings (default στo .ΝΕΤ) και τα στοιχεία που δίνεις είναι Unicode, δεν υπάρχει περίπτωση να εμφανιστεί πρόβλημα. Αν όμως κάνεις την κλήση π.χ. με λάθος encoding ή περνάς ASCII αντί για Unicode (π.χ. το XML αρχείο είναι ASCII αντί για UTF8 ή Unicode) τότε λογικό είναι να έχεις προβλήματα. Επιπλέον, η VBScript δουλεύει με ASCII αντί για Unicode (αν θυμάμαι καλά).

    Πέρα από το να ελέγξεις ότι το αρχείο είναι σε σωστό encoding, γιατί χρησιμοποιείς VBScript αντί π.χ. Powershell ? Στο powershell v2 μπορείς να καλέσεις web services απευθείας και να αποφύγεις τις ταρζανιές που χρειάζονται με την VBScript - η οποία ΔΕΝ υποστηρίζει απευθείας κλήση Web Services. Δες αυτό το παράδειγμα όπου η κλήση ενός web service είναι κυριολεκτικά δύο γραμμές:

    $weather = New-WebServiceProxy -uri "http://www.webservicex.net/globalweather.asmx?wsdl"
    $weather.GetWeather("Southampton", "United Kingdom")
    Η New-WebServiceProxy είναι εντόλή του Powershell v2 η οποία σου δημιουργεί ένα Proxy αντικείμενο με όλες τις μεθόδους του web service έτοιμες


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  19-11-2010, 14:05 60981 σε απάντηση της 60980

    Απ: web service and greek characters

    Η powershell είναι εγκατεστημένη ή πρέπει να την κατεβάσω απο κάπου?
    www.myautos.gr
  •  19-11-2010, 14:28 60982 σε απάντηση της 60981

    Απ: web service and greek characters

    Η έκδοση 2.0 περιλαμβάνεται στα Windows 7 και 2008 R2 ενώ υπάρχει για download από τα Windows XP SP3 και μετά. H έκδοση 1.0 περιλαμβάνεται στα Windows 2009 R2 και υπάρχει για download από XP SP3. Ρίξε μία ματιά στο Script Center  της Microsoft, το οποίο μεταξύ άλλων περιέχει δεκάδες έτοιμα scripts
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  19-11-2010, 14:34 60983 σε απάντηση της 60982

    Απ: web service and greek characters

    Σε ευχαριστώ για την αμεσότητά των απαντήσεων.


    www.myautos.gr
  •  20-11-2010, 09:58 60993 σε απάντηση της 60980

    Απ: web service and greek characters

    Παναγιώτης Καναβός:
    Η συζήτηση για τα ελληνικά έχει γίνει πολλές φορές και η απάντηση είναι πάντα "παίζουν πάντα εκτός κι αν τα χαλάσεις". Εφόσον χρησιμοποιείς nvarchar πεδία στη βάση, ο κώδικας του web service σου δουλεύει με Unicode strings (default στo .ΝΕΤ) και τα στοιχεία που δίνεις είναι Unicode, δεν υπάρχει περίπτωση να εμφανιστεί πρόβλημα. Αν όμως κάνεις την κλήση π.χ. με λάθος encoding ή περνάς ASCII αντί για Unicode (π.χ. το XML αρχείο είναι ASCII αντί για UTF8 ή Unicode) τότε λογικό είναι να έχεις προβλήματα. Επιπλέον, η VBScript δουλεύει με ASCII αντί για Unicode (αν θυμάμαι καλά).

    Έχω την εντύπωση ότι αν σώσεις το script αρχείο με encoding UTF-8 δεν θα κάνει convert τα string μεταξύ ANSI <-> UTF-8. Τα κρατάει σε UTF-8 και λύνει το πρόβλημα...

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  23-11-2010, 16:26 61065 σε απάντηση της 60993

    Απ: web service and greek characters

    H σωστή απάντηση είναι του Παναγιώτη. Εάν σωσεις το vbscript ως UTF-8 δεν εκτελείται καν. Σκάει.

     


    Αυτοί που ζουν γενναίοι είναι ενάρετοι,κάνουν ένδοξες πράξεις και πέθαινουν αιώνια ξακουστοί....
    Μ.Αλέξανδρος...IV Crusade...
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems