So it looks like you are using UTF-8 encoding in your SAS session because it used three bytes to display that character.
But that really doesn't help much with understanding what your actual question is.
Did the original programmer really type that strange character into the CODE?
Or are just not explaining that you are trying to read (or perhaps write) from some file instead?
If you are reading from a file then you can use the $HEX format to display the codes for a line of the file.
data _null_;
infile 'myfile.dat' obs=3 truncover;
input string $char100.;
put string $hex.;
run;
Or use the LIST statement and it will display the hex codes for any line that includes no printable characters.
data _null_;
infile 'myfile.dat' obs=3 truncover;
input ;
list;
run;
The number 20,200,903 you mentioned is NOT a date. SAS dates are stored as the number of days since 1960 so a number that large would be in the year 57,267 if treated as a date value.
But if you want to convert that number to a four byte integer you could use PIB4. format or the S370FPIB4. format. Depending on whether you want little endian or big endian numbers. You can reverse the process using the same named informats.
1860 data test;
1861 number=20200903;
1862 str1=put(number,pib4.);
1863 str2=put(number,S370Fpib4.);
1864 put str1=$hex. / str2=$hex.;
1865 number1 = input(str1,pib4.);
1866 number2 = input(str2,s370fpib4.);
1867 put (number:) (=comma15./);
1868 run;
str1=C73D3401
str2=01343DC7
number=20,200,903
number1=20,200,903
number2=20,200,903
... View more