LesezeichenAbonnierenRSS-Feed abonnieren
Muschik
Calcite | Level 5

Hallo Zusammen,

 

ich versuche Daten von Windows nach UNIX zu übertragen. Dabei will ich PROC CPORT und CIMPORT nutzen.

unter Windows nutze ich folgenden Code:

filename ccc "....";

Proc Cport Data=maps.germany2 file ccc;

run;

Unter Unix nutze ich folgenden Code:

Proc Cimport

infile="..."

lib=Work memtype=data;

run;

 

Das funktioniert soweit. Allerdings geht dabei die korrekte Anzeige der Umlaute verloren? (unter Windows ist das Encoding WLATIN1 und unter UNIX utf-8).

Weiß jemand was hier zu tun ist?

Vielen Dank,

freundliche Grüße

Benedikt M.

6 ANTWORTEN 6
Kurt_Bremser
Super User

Das Hindernis sind die Encodings, WLATIN1 ist single-byte, UTF-8 ist Multi-Byte, und da scheitern einfache Konversionsschritte.

 

Eine Möglichkeit wäre es, das Dataset einfach binär nach UNIX zu kopieren und zwar in eine Library, die man mit LIBNAME xxxx 'xxxxx' ENCODING=WLATIN1; zuweist. Habe ich aber mangels Notwendigkeit noch nicht probiert.

Muschik
Calcite | Level 5

Hallo Herr Bremser,

 

vielen Dank für die hilfreiche Antwort. Lese ich die Datei wie folgt ein:

data mm;

set "/opt/sas/daten/pb-race/krm/data/transfer/uc4filetrans/input/germany2.sas7bdat"

(encoding=WLATIN1);

run;

 

kommt sie bezüglich der Umlaute richtig an. Wissen Sie, ob man diesem Weg trauen kann,

oder kann es bei diesem Übertragungsweg zu anderen Defekten an den transferierten Dateien kommen.

Nochmals Danke,

freundliche Grüße

Benedikt M.

Kurt_Bremser
Super User

SAS ist üblicherweise sehr "spendabel" mit Meldungen, wenn man etwas Riskantes macht. Wenn keine NOTES außer den üblichen beim Lesen auftauchen (außer ein Hinweis aufs Transcoding), sehe ich keine Gefahr.

Muschik
Calcite | Level 5

nochmals Danke - (PS: das SAS-Log mit und ohne Encoding ist identisch, aber ohne Encoding ist die Datei bezüglich der Umlaute nicht so wie ich sie haben wollte)

mfab
Quartz | Level 8

Wenn ich das richtig sehe, muss die Sitzung, die das Transfer-File erstellt (mit proc cport) und die Sitzung, die den Import vornimmt (proc cimport) das gleiche Encoding haben.

 

hier ein Hinweis aus der englischen SAS-Doku:

https://support.sas.com/documentation/cdl/en/proc/61895/HTML/default/a003200039.htm#a003209585

 

 

Muschik
Calcite | Level 5

ebenfalls Dankeschön!

sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

Register now!

Diskussionsstatistiken
  • 6 Antworten
  • 2726 Aufrufe
  • 0 Kudos
  • 3 in Unterhaltung