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.
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.
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.
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.
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)
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
ebenfalls Dankeschön!
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!