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 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

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