SAS Unicode Server Ratkaisu merkistöongelmiin? Tapio Kalmi Principal Consultant SAS Institute



Samankaltaiset tiedostot
XML tehtävien työnkulku

Migraation ilot ja itkut. Hilkka Lamminsivu Anneli Keinonen

Directory Information Tree

Selvitysraportti. MySQL serverin asennus Windows ympäristöön

JOVISION IP-KAMERA Käyttöohje

Maiju Mykkänen Susanna Sällinen

ANVIA ONLINE BACKUP ASENNUSOPAS 1(7) ANVIA ONLINE BACKUP ASENNUSOPAS 1.0

erasmartcardkortinlukijaohjelmiston

SAS sovellusten hallinnointi helpoksi Turbo Charge -menetelmällä Tapio Kalmi, SAS Institute Oy

Lync Online. Järjestelmänvalvojan perusopas

Office ohjelmiston asennusohje

Varmennepalvelu - testipenkki. Kansallisen tulorekisterin perustamishanke

SQL Server 2008 asennus

Gree Smart -sovelluksen (WiFi) asennus- ja käyttöohje: Hansol-sarjan ilmalämpöpumput WiFi-ominaisuuksilla

Työasemien hallinta Microsoft System Center Configuration Manager Jarno Mäki Head of Training Operations M.Eng, MCT, MCSE:Security, MCTS

Qt kaikkialla?

erasmartcard-kortinlukijaohjelmiston asennusohje (mpollux jää toiseksi kortinlukijaohjelmistoksi)

Fontit ja tekstin selkeys

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri

Android ohjelmointi. Mobiiliohjelmointi 2-3T5245

Käyttöohjeet. Sovellussivusto

Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä?

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

Onnittelut PC SpeedCAT perheeseen liittymisestä

Pikaohje formaatin valmistamiseen

Tulostimen asentaminen Software and Documentation -CD-levyn avulla

Käyttöoppaasi. F-SECURE PSB AND SERVER SECURITY

Maventa Connector Käyttöohje

Sonera Yrityssähköposti. Outlook 2013 lataus ja asennus

Xerox Device Agent, XDA-Lite. Pika-asennusopas

EMVHost Online SUBJECT: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT COMPANY: EMVHost Online Client sovelluksen käyttöohje AUTHOR: DATE:

TIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO

Opi kuvin: By Choice v.1.4 asennus Asennus järjestelmänvalvojan oikeuksin

TAMFELT TAMELT. Tamfeltin Unicode-konversio

Javan asennus ja ohjeita ongelmatilanteisiin

Visma Avendon asennusohje

Salasanojen hallinta. Salasanojen hallintaopas RESTAURANT ENTERPRISE SOLUTION

Varmennepalvelu Rajapintakuvaus Kansallisen tulorekisterin perustamishanke

Osoitin ja viittaus C++:ssa

TEHTÄVÄ 4: Microsoft Windows Deployment Services asennus ja hallinta

NORDEAN WEB SERVICES YHTEYDEN KÄYTTÖÖNOTTO

TeleWell TW-LTE/4G/3G USB -modeemi Cat 4 150/50 Mbps

1 AinaCom Skype for Business / Lync 2010 / Lync for Mac 2011 asennusohje... 2

Harjoitus 6 (viikko 42)

Coolselector Asennusohje

Ruokahalu kasvaa syödessä lisää makrokielen herkkuja

Aditro Tikon versio 6.2.0

Osio 4: Tietovirrat. Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely

Graafinen ohjeistus Taidekaupunki-logo

AirPrint-opas. Tietoja AirPrintistä. Asetustoimet. Tulostaminen. Liite

Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita.

McAfee epolicy Orchestrator Pre-Installation Auditor 2.0.0

Sense tiedostot Käyttöohje Opastinsilta 8 ae Helsinki

Ohjelmiston asennusopas NPD FI

Outlook Office 365. Tässä ohjeessa kuvataan miten sähköpostitili (IMAP) sekä Kotisivut.com Autentikoiva SMTPlisäpalvelu

Alustavia käyttökokemuksia SAS Studiosta. Timo Hurme Maa- ja elintarviketalouden tutkimuskeskus MTT (v alusta Luonnonvarakeskus / Luke)

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

DNS- ja DHCPpalvelut. Linuxissa. Onni Kytönummi & Mikko Raussi

L models. Käyttöohje. Ryhmä Rajoitteiset

2. Modeemi- ja ISDN-yhteyden käyttöönotto

Visual Case 2. Miika Kasnio (C9767)

Ohjeet e kirjan ostajalle

Visma Econet Pro Palkat Versioseloste Versio 6.40

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

Action Request System

Nimettömien tietojen lähettäminen Lenovolle

WEIKKA. Asennus opas. Hannu-Matti Lemettinen HML Productions

Uutta Remote Support Platform 3.1 -versiossa

Kerro kuvin: InPrint 2.8 asennus Asennus järjestelmänvalvojan oikeuksin

OP-POHJOLAN WEB SERVICES YHTEYDEN KÄYTTÖÖNOTTO

Backup Exec 3600 Appliance

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

Novapoint Lisensiointi. Copyright 2006, ViaNova IT AS. All rights reserved 1

TIETOKONEASENTAJAN AMMATTITUTKINTO OHJELMISTOJEN KÄYTTÖ JA ASENNUS, ENNAKKOTEHTÄVÄ

Tulostimen asentaminen Software and Documentation -CD-levyn avulla tietokoneeseen ja suorita asennusohjelma uudelleen.

TERADATAN JA SAS DI STUDION YHTEISELO CASE LÄHITAPIOLA

SQL Buddy JAMK Labranet Wiki

MPCC-työkalua voidaan käyttää yhden laitteen valvontaan ja yhden tai useamman laitteen konfigurointiin (Modbus broadcast, osoite 0).

Harjoitus 6. Käytä String-luokasta vain charat- ja length-operaatioita.

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0

SQL Server 2005 Express Edition tietokannan asennusohje

1. Skannaus ja tekstintunnistus (OCR) verkkoskannerilta

Aditro Tikon versio SP1

Visma Business AddOn Installer. Käsikirja

Tikon Web-sovellukset

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka. Joni Korjala APACHE WWW-PALVELIN Seminaarityö 2012

Ennen varmenteen asennusta varmista seuraavat asiat:

SAS:in uudet grafiikkaominaisuudet. Ari Toikka

NAVITA BUDJETTIJÄRJESTELMÄN ENSIASENNUS TYÖASEMALLE

Versionhallintaa. Versionhallinnan käyttöönotto SAS ympäristössä

ARKIPÄIVÄN SUOMEA-ohjelma vaatii toimiakseen multimedia-pc:n, jossa on seuraavat tekniset ominaisuudet ja ohjelmat asennettuna.

Aditro Tikon versio SP1

Windows 8.1:n vaiheittainen päivitysopas

Korpusten käsittely clt131, P Luento 1

erasmartcard-kortinlukijaohjelmiston käyttöohje

Työsähköpostin sisällön siirto uuteen postijärjestelmään

ASENNUSOHJEET INTERNET-ASENNUS. Navita Yritysmalli. YHTEYSTIEDOT Visma Solutions Oy Mannerheiminkatu LAPPEENRANTA Puh.

Taulukot. Jukka Harju, Jukka Juslin

Transkriptio:

SAS Unicode Server Ratkaisu merkistöongelmiin? Tapio Kalmi Principal Consultant SAS Institute

Sisältö Merkistöt ja merkistökoodaus yleisesti SAS istuntojen merkistökoodaus SAS ENCODING optioiden käyttö Käytännön merkistöongelmia SAS Unicode Server SAS ohjelmointi SAS Unicode Serverillä Migraatio SAS Unicode Serveriin Mitä SAS Unicode Server ei ratkaise? Yhteenveto

EBCDIC/ASCII/WLATIN/ merkistöt merkki tai komento kuvataan yhden tavun mittaisella arvolla 8 bits 1 Byte 1 Code Point Bin: 0000 0000 Hex: 00 Dec: 0 Bin: 0000 0001 Hex: 01 Dec: 1 Bin: 0000 0010 Hex: 02 Dec: 2 Bin: 0000 0011 Hex: 03 Dec: 3.. Bin: 1111 1111 Hex: FF Dec: 255 merkistökohtaiset määritykset merkkien arvoille

EBCDIC/ASCII/WLATIN/ merkistöt Kontrollimerkit (CR,LF, ) Aakkoset ja numerot Erikoismerkit Symbolit Grave, Acute, Circumflex, (à á â ) Eri merkit ja eri järjestys eri merkistöissä Muuntotaulukot Transcoding IBM, System/370, Reference Summary, 6.Edition 1984

Unicode merkistö luotu ratkaisemaan se ongelma, että 255 arvoon ei mahdu kuin pieni osajoukko maailmalla käytetyistä merkeistä merkistö jaettu 17 tasoon (Plane), 65.536 merkkiä per taso voidaan määritellä yli miljoona erilaista merkkiä on määritelty yli 100.000 merkkiä jo vuoden 2008 alussa yleisin Internet-sisällön merkistö Java, Android, ios ja Symbian ympäristöjen tuki uusimpia merkkejä ovat mm. seuraavat Emoji-merkit

UTF-8 merkistökoodaus Unicode merkistön vaihtuvamittainen merkistö-koodaus, jossa käytetään 1-4 tavua per merkki Länsimaisen kulttuurin merkistöt perustuvat pääosin latinalaisiin merkkeihin, jolloin pääosa merkeistä voidaan tallettaa yhteen tavuun ja tiedon tallennus on optimaalista levytilan käytön kannalta Yleisin Unicode merkistökoodaus käyttöjärjestelmissä, tietokannoissa ja ohjelmistoissa UTF-16 on aina 2 tavuinen ja UTF-32 aina 4 tavuinen, joten niitä käytettäessä menee 2 tai 4 kertainen määrä levytilaa eivätkä ne näin ollen ole suositeltavia merkistökoodauksia

UTF-8 merkistökoodaus Myös SAS sovelluskehityksessä kasvavia trendejä ovat Web tietolähteiden käyttö Web raportoinnin käyttö Mobiililaitteiden käyttö Lähde: https://en.wikipedia.org/wiki/utf-8 UTF-8 merkistökoodaus on suositeltava arkkitehtuurilinjaus SAS ratkaisuja suunniteltaessa.

SAS istuntojen merkistökoodaus merkistökoodaukseen liittyvä SAS optio on ENCODING ENCODING option asetus luetaan istunnon alussa konfigurointitiedostosta eikä sitä voi muuttaa kesken istunnon sisään luettavat tiedot oletetaan istunnon merkistöä käyttäviksi, jos inputin ENCODING optiota ei ole käytetty ja kyseessä on ulkoinen tiedosto tai SAS taulu, joka on tehty SAS 6/7/8 versiolla sisään luettavan tiedon merkistö katsotaan SAS taulusta, jos luettava SAS taulu on tehty versiolla 9.x kirjoitettavat tiedot tehdään aina istunnon merkistökoodauksella, ellei outputin ENCODING optiota ole käytetty

ENCODING optioiden käyttö Sisään luettava tieto FILENAME <fileref> <polkunimi> ENCODING= <merkistö> ; LIBNAME <libref> <polkunimi> INENCODING= <merkistö> ; HUOMAA: ENCODING voidaan määritellä myös taulutasolla, mutta selvyyden vuoksi on suositeltavaa pitää eri merkistökoodauksien mukaiset tiedot eri kirjastoissa Ulos kirjoitettava tieto FILENAME <fileref> <polkunimi> ENCODING= <merkistö> ; LIBNAME <libref> <polkunimi> OUTENCODING= <merkistö> ;

Käytännön merkistöongelmia WLATIN1 OK WLATIN1 WLATINx UTF-8 Useimmiten OK, välillä virhe Virhetilanteita tulee tietosisällöstä riippuen joko silloin tällöin tai taajaan Virhe tulee, kun luettavan merkistön merkille ei löydy vastinparia SAS istunnon merkistöstä Luettavan tiedon merkistö voi vaihtua ajokerrasta toiseen ENCODING=ANY auttaa osittain, mutta ei poista koko ongelmaa varsinkaan UTF-8 merkistön osalta

Merkistömuunnosten virheilmoituksia ERROR: Some character data was lost during transcoding in the data set libref.member. ERROR: Some code points did not transcode. WARNING: A character that could not be transcoded was encountered.

Ratkaisu merkistöongelmiin WLATIN1 WLATINx UTF-8 OK OK OK UTF-8 Kun tietoa vastaanottava SAS järjestelmä käyttää UTF-8 merkistökoodausta, onnistuu kaikkien yleisimpien merkistöjen sisään luku ongelmitta Sisään luettavan aineiston merkistökoodaus tulee tietää, jos se ei ole UTF-8 Kun ENCODING optiolla kerrotaan merkistökoodaus, merkistömuunnos tehdään automaattisesti UTF-8 merkistöstä löytyy vastinparit kaikille Euroopassa käytettyjen yksitavuisten merkistöjen merkeille

Mikä on SAS Unicode Server? SAS Unicode Serverillä tarkoitetaan SAS istuntoa, joka käyttää UTF-8 merkistökoodausta UTF-8 tuki asennetaan aina kaikissa Windows ja Unix asennuksissa palvelimille ja työasemille riippumatta siitä, otetaanko SAS Unicode Server käyttöön vai ei SAS Unicode Server on Base SAS ominaisuus, joten siitä ei aiheudu asiakkaalle lisenssikustannuksia

Miksi SAS Unicode Server? 1/2 Unicode merkistön ja UTF-8 merkistökoodauksen edut saadaan hyödynnettyä SAS sovelluksissa vain SAS Unicode Serveriä käyttämällä Erillisiä kielikohtaisia ympäristöjä ei tarvita useita eri kieliä liitettävissä yhteen SAS asennukseen kieliasetuksen (LOCALE) voi vaihtaa SAS istunnon aikana Web Service rajapintojen kautta luettavien XML aineistojen erikoismerkkien sisään lukuihin liittyvät ongelmat poistuvat Koko SAS ratkaisulle yksi yhtenäinen merkistö

Miksi SAS Unicode Server? 2/2 kun kaikki alkuperäinen tieto saadaan talletettua sellaisenaan, voidaan tietojen yhtenäistäminen tehdä hallitusti esimerkiksi erilaisten kansallisten merkkien muokkaaminen latinalaiseen englanninkieliseen merkistöön Tietovarasto linkkinä eri merkistöissä olevien järjestelmien välillä kun tiedot ovat UTF-8 merkistössä ja tietoja on yhtenäistetty latinalaiseen merkistöön, voidaan yhdenmukaiset suppeamman merkistön tiedot välittää mihin tahansa vanhaan yksitavuiseen merkistöön Sekä alkuperäinen että yhdenmukaistettu tieto tallessa

SAS Uncode Server asennus 1/2 Käyttöjärjestelmän tulee käyttää UTF-8 merkistökoodausta Esimerkiksi Linux: en_us.utf-8 SAS Unicode Server ei ole tuettu z/os eikä OpenVMS alustoilla Seuraavat SAS ratkaisujen osat eivät ole kokonaan tuettuja AF, FSP sekä muut Full Screen sovellukset eivät toimi eli vanhat Client-Server arkkitehtuurin SAS sovellukset OLEDB toimii monikielisyyden osalta rajoitetusti Näiltä osin paras ratkaisu on ympäristön modernisointi kokonaisuudessaan

SAS Unicode Server asennus 2/2 Asentajan tarvitsee vain laittaa rasti yhteen ruutuun, jonka jälkeen SAS 9 palvelut asennetaan UTF-8 merkistökoodausta käyttäen

Ohjelmointi SAS Unicode Serverillä SAS Unicode Server käyttö tarkoittaa käytännössä laajennettua kansallisten asetusten (I18N) ja UTF-8 merkistökoodauksen käyttöä ennen merkistökoodauksen käyttöönottoa tulee tutkia, mitä kaikkea tulee tehdä toisin perehtymiseen hyviä tietolähteitä ovat Johdanto Multilingual_Computing_with_SAS_94.pdf Dokumentaatio SAS(R) 9.4 National Language Support (NLS): Reference Guide, Fourth Edition

Ohjelmointi SAS Unicode Serverillä Koska merkistökoodaus on vaihtuvamittainen, tulee merkkijonoja käsiteltäessä käyttää eri komentoja kuin yksitavuisia merkistökoodauksia käytettäessä Funktiot jaettu I18N tasoihin 0, 1 ja 2 Tasot 0 ja 1 eivät sovellu vaihtuvamittaisen merkistökoodauksen kanssa käytettäviksi Osa tason 2 funktioista korvaa tason 0 funktioita Lähde: Internationalization Compatibility for SAS String Functions

K-funktiot 20 yleisintä tason 0 funktiota ja niitä vastaavat tason 2 funktiot, joita tulee käyttää UTF-8 merkistökoodausta käytettäessä CAT KSTRCAT COMPARE KCOMPARE COMPRESS KCOMPRESS COUNT KCOUNT INDEX KINDEX INDEXC KINDEXC LEFT KLEFT LENGTH KLENGTH LOWCASE KLOWCASE PROPCASE KPROPCASE REVERSE KREVERSE RIGHT KRIGHT SCAN KSCAN STRIP KSTRIP SUBSTR KSUBSTR TRANSLATE KTRANSLATE TRIM KTRIM TRUNCATE KTRUNCATE UPCASE KUPCASE VERIFY KVERIFY

KSUBSTR erityistapaus HUOMAA: Sijoituslauseen vasemmalla puolella oleva KSUBSTR ei aina toimi oikein Esimerkki: 1. merkki kentästä x tulee sijoittaa text kentän 4. merkiksi Joissakin tilanteissa väärin toimiva lause: ksubstr(text,4,1)=ksubstr(x,1,1); Aina oikein toimiva lause: text=ksubstr(text,1,3)!!ksubstr(x,1,1)!!ksubstr(text,5);

K-AUTOCALL makrot 1-TAVUISET MERKISTÖT: %LOWCASE %QLOWCASE %TRIM %QTRIM %VERIFY UTF-8: %KLOWCASE %QKLOWCAS %KTRIM %QKTRIM %KVERIFY

K-Makrofunktiot 1-TAVUISET MERKISTÖT: %CMPRES %QCMPRES %INDEX %LEFT %QLEFT %LENGTH %SCAN %QSCAN %SUBSTR %QSUBSTR %UPCASE %QUPCASE UTF-8: %KCMPRES %QKCMPRES %KINDEX %KLEFT %QKLEFT %KLENGTH %KSCAN %QKSCAN %KSUBSTR %QKSUBSTR %KUPCASE %QKUPCASE

Kansalliset formaatit ja muut asetukset SAS Unicode Serverillä on mahdollista vaihtaa LOCALE asetusta kesken istunnon, koska UTF-8 merkistökoodaus tukee kaikkia käytettävissä olevia kieliä Jotta LOCALE muutos vaikuttaisi myös päivämäärään ja muihin kansallisiin formaatteihin, tulee käyttää NL-alkuisia formaatteja Jos päivämääräsarakkeelle on määritelty FINDFDD10. formaatti, näytetään päiväys aina suomalaisittain LOCALE asetuksesta riippumatta Jos formaatiksi on määritelty NLDATES10., näytetään päivämäärä LOCALE asetuksen mukaisessa muodossa SAS 9.4 National Language Support (NLS): Reference Guide

Fontit Kaikki fontit eivät ole käytettävissä UTF-8 merkistön kanssa samalla tavoin kuin muiden merkistökoodausten kanssa Helpointa on rajata käytetyt fontit yleisiin kaikissa SAS ympäristöissä oletusasetuksin toimiviin fontteihin: "Albany AMT, "Thorndale AMT, "Cumberland AMT, "Arial Unicode MS tai "Times New Roman Uni" Jos halutaan käyttää muita fontteja, tulee ne asentaa erikseen tai määritellä itse erikseen, jos niitä ei ole asennettavissa. Lisätietoa esimerkiksi SAS/Graph fonteista mm täällä: TrueType Fonts That Are Supplied by SAS

SAS Enterprise Guide SAS Enterprise Guide ohjelmassa on toiminto, jolla voi tarkistaa ohjelmakoodin I18N yhteensopivuuden Avaa tarkistettava ohjelma File, Open, Program toiminnolla Kun ohjelmakoodi on ruudulla, valitse Analyze Program, Analyze for Internationalization toiminto Voit valita osa-alueet, jotka haluat tarkistaa Mukana mm. formaattien ja informaattien tarkistukset EG ehdottaa korvaavaa komentoa

Migraatio SAS Unicode serveriin Tarkistettava olemassa olevista SAS ohjelmista pitääkö sarakepituuksia kasvattaa sen vuoksi, että ääkköset vievät 2 tavua aikaisemman 1 tavun sijaan? Mitkä kaikki funktiot ja makrokomennot tulee muuttaa Formaatit ja fontit Tarkistuksia varten SAS ohjelmia, jotka saa konsultoinnista ENCODING määritykset tulee lisätä Migraatiosuunnitelma on suositeltavaa tehdä yhdessä SAS Instituten konsultoinnin kanssa

Mitä SAS Unicode Server ei ratkaise? Esimerkiksi Arabian, Heprean, Kiinan, Kreikan ja Kyrillisten merkkien muunto latinalaiseen kirjoitusasuun WLATIN1 -> UTF-8 -> WLATIN9 muunto niiden merkkien osalta, jotka ovat 1:ssä mutta eivät ole 9:ssä Eli merkistöihin liittyen on edelleen asioita, joille tulee laatia omia säännöstöjä ja ratkaisuja tarpeen mukaan Kun alkuperäinen tieto on tallessa voidaan muunto tehdä hallitusti

Yhteenveto SAS Unicode Server poistaa yleisimmät Suomessa esiintyvät merkistömuunnoksiin liittyvät ongelmat SAS Unicode Serverin (eli UTF-8 merkistökoodauksen) käyttö on suositeltavaa uusissa SAS asennuksissa Vanhojen ratkaisujen osalta migraatio on suositeltavaa, jos merkistöongelmia on esiintynyt tai niitä pidetään todennäköisenä tulevaisuudessa Sovelluskehityksessä tulee ottaa huomioon vaihtuvamittaisen merkistökoodauksen vaatimukset

Tietolähteitä Unicode https://fi.wikipedia.org/wiki/unicode http://www.unicode.org/ UTF-8 https://fi.wikipedia.org/wiki/unicode#utf-8 SAS Unicode Server Multilingual_Computing_with_SAS_94.pdf SAS(R) 9.4 National Language Support (NLS): Reference Guide, Fourth Edition

SAS Unicode Server Ratkaisu merkistöongelmiin? KIITOS! KYSYMYKSIÄ?