2008 Mar 22 5:44 AM
Hi experts,
can anybody tell me
what is unicode and non-unicode in interview point of view.Just 2 or 3 sentences....
Thanks in advance
Hi experts,
can anybody tell me
what is unicode and non-unicode in interview point of view.Just 2 or 3 sentences....
Thanks in advance
2008 Mar 22 5:50 AM
A 16-bit character encoding scheme allowing characters from Western European, Eastern European, Cyrillic, Greek, Arabic, Hebrew, Chinese, Japanese, Korean, Thai, Urdu, Hindi and all other major world languages, living and dead, to be encoded in a single character set. The Unicode specification also includes standard compression schemes and a wide range of typesetting information required for worldwide locale support. Symbian OS fully implements Unicode. A 16-bit code to represent the characters used in most of the world's scripts. UTF-8 is an alternative encoding in which one or more 8-bit bytes represents each Unicode character. A 16-bit character set defined by ISO 10646. A code similar to ASCII, used for representing commonly used symbols in a digital form. Unlike ASCII, however, Unicode uses a 16-bit dataspace, and so can support a wide variety of non-Roman alphabets including Cyrillic, Han Chinese, Japanese, Arabic, Korean, Bengali, and so on. Supporting common non-Roman alphabets is of interest to community networks, which may want to promote multicultural aspects of their systems.
2008 May 20 8:36 AM
Hi,
In the non-unicode each logon language having separate code pages, whereas in in the unicode using single code page for all languages.
regards,
Saravanan V
2008 May 20 8:54 AM
unicode is for multilingual capability in SAP system,
apart from that important unicode t.code is uccheck if you give report name we will get different error codes,in genaral we get an error of structures miss match,obsolute statemnts,open data set,describe ststment and so on
more over you can say we delete all obsolute function modules, look at the following it may help you
Before the Unicode error
lt_hansp = lt_0201-endda0(4) - lt_0002-gbdat0(4).
Solution.
data :abc type i,
def type i.
move lt_0201-endda+0(4) to abc.
move lt_0002-gbdat+0(4) to def.
lt_hansp-endda = abc - def.
Before the Unicode error:
WRITE: /1 'CO:',CO(110).
Solution.
FIELD-SYMBOLS: <fs_co> type any.
assign co to <fs_co>.
WRITE: /1 'CO:',<fs_co>(110).
DESCIBE002 In Unicode, DESCRIBE LENGTH can only be used with the IN BYTE MODE or IN CHARACTER MODE addition.
Before the Unicode error:
describe field <tab_feld> length len.
Solution.
describe field <tab_feld> length len IN character mode.
Before the Unicode error:
DESCRIBE FIELD DOWNTABLA LENGTH LONG.
Solution.
DESCRIBE FIELD DOWNTABLA LENGTH LONG IN byte MODE.
DO 002 Could not specify the access range automatically. This means that you need a RANGE addition
Before the Unicode error:
DO 7 TIMES VARYING i FROM aktuell(1) NEXT aktuell+1(1)
Solution.
DO 7 TIMES VARYING i FROM aktuell(1) NEXT aktuell+1(1) RANGE aktuell .
Before the Unicode error:
DO 3 TIMES VARYING textfeld FROM gtx_line1 NEXT gtx_line2.
Solution.
DATA: BEGIN OF text,
gtx_line1 TYPE rp50m-text1,
gtx_line2 TYPE rp50m-text2,
gtx_line3 TYPE rp50m-text3,
END OF text.
DO 3 TIMES VARYING textfeld FROM gtx_line1 NEXT gtx_line2 RANGE text..
Before the Unicode error:
DO ev_restlen TIMES
VARYING ev_zeichen FROM ev_hstr(1) NEXT ev_hstr+1(1).
Solution.
DO ev_restlen TIMES
VARYING ev_zeichen FROM ev_hstr(1) NEXT ev_hstr+1(1) range ev_hstr.
MESSAGEG!2 IT_TBTCO and "IT_ALLG" are not mutually convertible. In Unicode programs, "IT_TBTCO" must have the same structure layout as "IT_ALLG", independent of the length of a Unicode character.
Before the Unicode error:
IT_TBTCO = IT_ALLG.
Solution.
IT_TBTCO-header = IT_ALLG-header.
MESSAGEG!3 FIELDCAT_LN-TABNAME and "WA_DISP" are not mutually convertible in a Unicode program
Before the Unicode error:
IF GEH_TA15(73) NE RETTER15(73).
Solution.
FIELD-SYMBOLS: <GEHTA> TYPE ANY.
<RETTER1> TYPE ANY.
ASSIGN: GEH_TA TO <GEHTA>,
RETTER TO <RETTER>.
IF <GEHTA>15(73) NE <RETTER>15(73).
Before the Unicode error:
IMP_EP_R3_30 = RECRD_TAB-CNTNT.
Solution.
FIELD-SYMBOLS: <imp_ep_r3_30> TYPE X,
<recrd_tab-cntnt> TYPE X.
ASSIGN IMP_EP_R3_30 TO <imp_ep_r3_30> CASTING.
ASSIGN RECRD_TAB-CNTNT TO <recrd_tab-cntnt> CASTING.
<imp_ep_r3_30> = <recrd_tab-cntnt>.
Before the Unicode error:
and pernr = gt_pernr
Solution.
and pernr = gt_pernr-pernr
MESSAGEG!7 EBC_F0 and "EBC_F0_255(1)" are not comparable in Unicode programs.
Before the Unicode error:
IF CHARACTER NE LINE_FEED.
Solution.
IF CHARACTER NE LINE_FEED-X.
MESSAGEG!A A line of "IT_ZMM_BINE" and "OUTPUT_LINES" are not mutually convertible. In a Unicode program "IT_ZMM_BINE" must have the same structure layout as "OUTPUT_LINES" independent of the length of a Unicode character.
Before the Unicode error:
*data: lw_wpbp type pc206.
Solution.
data: lw_wpbp type pc205.
Before the Unicode error:
LOOP AT seltab INTO ltx_p0078.
Solution.
DATA: WA_SELTAB like line of SELTAB.
CLEAR WA_SELTAB.
MOVE-CORRESPONDING ltx_p0078 to wa_seltab.
move-corresponding wa_seltab to ltx_p0078.
MESSAGEG?Y The line type of "DTAB" must be compatible with one of the types "TEXTPOOL".
Before the Unicode error:
DATA:
BEGIN OF dtab OCCURS 100.
text(100),
include structure textpool.
End of changes
SET TITLEBAR '001' WITH dtab-text+9.
Solution.
the following declaration should be mentioned in the declaration of the textpool.
DATA:
BEGIN OF dtab OCCURS 100.
text(100),
include structure textpool.
End of changes
SET TITLEBAR '001' WITH dtab-entry.
MESSAGEG@1 TFO05_TABLE cannot be converted to a character-type field.
Before the Unicode error:
WRITE: / PA0015, 'Fehler bei MODIFY'.
Solution.
WRITE: / PA0015+0, 'Fehler bei MODIFY'.
MESSAGEG@3 ZL-C1ZNR must be a character-type data object (data type C, N, D, T or STRING) .
Before the Unicode error:
con_tab TYPE x VALUE '09',
Solution.
con_tab TYPE string VALUE '09',
Before the Unicode error:
data: g_con_ascii_tab(1) type x value '09'.
Solution.
data: g_con_ascii_tab type STRING value '09'.
MESSAGEG@E HELP_ANLN0 must be a character-type field (data type C, N, D, or T). an open control structure introduced by "INTERFACE".
Before the Unicode error:
WRITE SATZ-MONGH TO SATZ-MONGH CURRENCY P0008-WAERS.
WRITE SATZ-JAH55 TO SATZ-JAH55 CURRENCY P0008-WAERS.
WRITE SATZ-EFF55 TO SATZ-EFF55 CURRENCY P0008-WAERS.
WRITE SATZ-SOFE_EREU TO SATZ-SOFE_EREU CURRENCY P0008-WAERS.
WRITE SATZ-SOFE_ERSF TO SATZ-SOFE_ERSF CURRENCY P0008-WAERS.
WRITE SATZ-SOFE_ERSP TO SATZ-SOFE_ERSP CURRENCY P0008-WAERS.
WRITE SATZ-SOFE_EIN TO SATZ-SOFE_EIN CURRENCY P0008-WAERS.
WRITE SATZ-SOFE_EREU TO SATZ-SOFE_EREU CURRENCY P0008-WAERS.
WRITE SATZ-ERHO_ERR TO SATZ-ERHO_ERR CURRENCY P0008-WAERS.
WRITE SATZ-ERHO_EIN TO SATZ-ERHO_EIN CURRENCY P0008-WAERS.
WRITE SATZ-JAH55_FF TO SATZ-JAH55_FF CURRENCY P0008-WAERS.
Solution.
DATA: SATZ1_MONGH(16),
SATZ_JAH551(16),
SATZ_EFF551(16),
SATZ_SOFE_EREU1(16),
SATZ_SOFE_ERSF1(16),
SATZ_SOFE_ERSP1(16),
SATZ_SOFE_EIN1(16),
SATZ_ERHO_ERR1(16),
SATZ_ERHO_EIN1(16),
SATZ_JAH55_FF1(16).
WRITE SATZ-MONGH TO SATZ1_MONGH CURRENCY P0008-WAERS.
WRITE SATZ-JAH55 TO SATZ_JAH551 CURRENCY P0008-WAERS.
WRITE SATZ-EFF55 TO SATZ_EFF551 CURRENCY P0008-WAERS.
WRITE SATZ-SOFE_EREU TO SATZ_SOFE_EREU1 CURRENCY P0008-WAERS.
WRITE SATZ-SOFE_ERSF TO SATZ_SOFE_ERSF1 CURRENCY P0008-WAERS.
WRITE SATZ-SOFE_ERSP TO SATZ_SOFE_ERSP1 CURRENCY P0008-WAERS.
WRITE SATZ-SOFE_EIN TO SATZ_SOFE_EIN1 CURRENCY P0008-WAERS.
WRITE SATZ-ERHO_ERR TO SATZ_ERHO_ERR1 CURRENCY P0008-WAERS.
WRITE SATZ-ERHO_EIN TO SATZ_ERHO_EIN1 CURRENCY P0008-WAERS.
WRITE SATZ-JAH55_FF TO SATZ_JAH55_FF1 CURRENCY P0008-WAERS.
SATZ-MONGH = SATZ1_MONGH.
SATZ-JAH55 = SATZ_JAH551.
SATZ-EFF55 = SATZ_EFF551.
SATZ-SOFE_EREU = SATZ_SOFE_EREU1.
SATZ-SOFE_ERSF = SATZ_SOFE_ERSF1.
SATZ-SOFE_ERSP = SATZ_SOFE_ERSP1.
SATZ-SOFE_EIN = SATZ_SOFE_EIN1.
SATZ-ERHO_ERR = SATZ_ERHO_ERR1.
SATZ-ERHO_EIN = SATZ_ERHO_EIN1.
SATZ-JAH55_FF = SATZ_JAH55_FF1.
MESSAGEG-0 VESVR_EUR must be a character-type data object (data type C, N, D, T or STRING).
Before the Unicode error:
TRANSLATE vesvr_eur USING '.,'.
TRANSLATE espec_eur USING '.,'.
TRANSLATE fijas_eur USING '.,'.
Solution.
data: vesvreur(16),
especeur(16),
fijaseur(16).
vesvreur = vesvr_eur.
especeur = espec_eur.
fijaseur = fijas_eur.
TRANSLATE vesvreur USING '.,'.
TRANSLATE especeur USING '.,'.
TRANSLATE fijaseur USING '.,'.
vesvr_eur = vesvreur.
espec_eur = especeur.
fijas_eur = fijaseur.
MESSAGEG-D LT_0021 cannot be converted to the line incompatible. The line type must have the same structure layout as "LT_0021" regardless of the length of a Unicode .
Before the Unicode error:
data: lt_0021 like p0021 occurs 0 with header line.
Solution.
DATA: LT_0021 LIKE PA0021 OCCURS 0 WITH HEADER LINE.
Before the Unicode error:
append sim_data to p0007.
Solution.
DATA:wa_p0007 type p0007.
move-corresponding sim_data to wa_p0007.
append wa_p0007 to p0007.
MESSAGEG-F The structure "CO(110)" does not start with a character-type field. In Unicode programs in such cases, offset/length declarations are not allowed
Before the Unicode error:
TRANSFER COBEZ+8 TO DSN.
Solution.
FIELD-SYMBOLS:<fs_cobez> type any.
TRANSFER <fs_COBEZ>+8 TO DSN.
Before the Unicode error:
WRITE: /1 COBEZ+16.
Solution.
FIELD-SYMBOLS <F_COBEZ> TYPE ANY.
ASSIGN COBEZ TO <F_COBEZ>.
WRITE: /1 <F_COBEZ>+16.
MESSAGEG-G The length declaration "171" exceeds the length of the character-type start (=38) of the structure. This is not allowed in Unicode programs.
Before the Unicode error:
write: /1 '-->',
pa0201(250).
Solution.
field-symbols <fs_pa0201> type any.
ASSIGN pa0201 TO <fs_pa0201>.
write: /1 '-->',
<fs_pa0201>(250).
MESSAGEG-H The offset declaration "160" exceeds the length of the character-type start (=126) of the structure. This is not allowed in Unicode programs . allowed.
Before the Unicode error:
WRITE:/ SATZ(80),
/ SATZ+80(80),
/ SATZ+160(80),
/ SATZ+240(80),
/ SATZ+320(27).
Solution.
FIELD-SYMBOLS <FS_SATZ> TYPE ANY.
ASSIGN SATZ TO <FS_SATZ>.
WRITE:/ <FS_SATZ>(80),
/ <FS_SATZ>+80(80),
/ <FS_SATZ>+160(80),
/ <FS_SATZ>+240(80),
/ <FS_SATZ>+320(27).
MESSAGEG-I The sum of the offset and length (=504) exceeds the length of the start (=323) of the structure. This is not allowed in Unicode programs .
Before the Unicode error:
/5 PARAMS+80(80),
Solution.
FIELD-SYMBOLS: <PARAMS> TYPE ANY.
ASSIGN PARAMS TO <PARAMS>.
/5 <PARAMS>+80(80),
MESSAGEGWH P0041-DAR01 and "DATE_SPEC" are type-incompatible.
Before the Unicode error:
DO 5 TIMES VARYING I0008 FROM P0008-LGA01 NEXT P0008-LGA02.
Solution.
DO 5 TIMES VARYING I0008-LGA FROM P0008-LGA01 NEXT P0008-LGA02. "D07K963133
Before the Unicode error:
DO VARYING ls_data_aux FROM p0041-dar01 NEXT p0041-dar02.
Solution.
DO VARYING ls_data_aux-dar01 FROM p0041-dar01 NEXT p0041-dar02.
MESSAGEGY/ The type of the database table and work area (or internal table) "P0050" are not Unicode-convertible
Before the Unicode error:
select * from pa9705 client specified
into ls_9705
Solution.
select * from pa9705 client specified
into corresponding fields of ls_9705
Before the Unicode error:
select * from pa0202 client specified
into ls_0202
Solution.
select * from pa0202 client specified
into corresponding fields of ls_0202
OPEN 001 One of the additions "FOR INPUT", "FOR OUTPUT", "FOR APPENDING" or "FOR UPDATE" was expected.
Before the Unicode error:
OPEN DATASET FICHERO IN TEXT MODE.
Solution.
OPEN DATASET FICHERO IN TEXT MODE FOR INPUT ENCODING NON-UNICODE.
OPEN 002 IN... MODE was expected.
Before the Unicode error:
OPEN DATASET P_OUT FOR OUTPUT IN TEXT MODE.
Solution.
OPEN DATASET P_OUT FOR OUTPUT IN TEXT MODE ENCODING non-unicode.
OPEN 004 In "TEXT MODE" the "ENCODING" addition must be specified.
Before the Unicode error:
open dataset dat for output in text mode.
Solution.
open dataset dat for output in text mode ENCODING NON-UNICODE.
UPLO Upload/Ws_Upload and Download/Ws_Download are obsolete, since they are not Unicode-enabled; use the class cl_gui_frontend_services
Before the Unicode error:
move p_filein to disk_datei.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = disk_datei
FILETYPE = FILETYPE
TABLES
DATA_TAB = DISK_TAB
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2.
Solution.
DATA: file_name type string.
move p_filein to file_name.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD
EXPORTING
FILENAME = file_name
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = SPACE
CODEPAGE = SPACE
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
VIRUS_SCAN_PROFILE =
IMPORTING
FILELENGTH =
HEADER =
CHANGING
DATA_TAB = disk_tab[]
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
NOT_SUPPORTED_BY_GUI = 17
ERROR_NO_GUI = 18
others = 19
.
Before the Unicode error:
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
filename = fich_dat
filetype = typ_fich
TABLES
data_tab = t_down.
Solution.
data: filename1 type string,
filetype1(10).
move fich_dat to filename1.
move typ_fich to filetype1.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD
EXPORTING
FILENAME = filename1
FILETYPE = filetype1
WRITE_FIELD_SEPARATOR = 'X'
CHANGING
DATA_TAB = t_down[].
Before the Unicode error:
*CALL FUNCTION 'UPLOAD'
TABLES
DATA_TAB = datos
EXCEPTIONS
CONVERSION_ERROR = 1
INVALID_TABLE_WIDTH = 2
INVALID_TYPE = 3
NO_BATCH = 4
UNKNOWN_ERROR = 5
GUI_REFUSE_FILETRANSFER = 6
OTHERS = 7
.
Solution.
DATA: file_table type table of file_table,
filetable type file_table,
rc type i,
filename type string.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
CHANGING
FILE_TABLE = file_table
RC = rc
EXCEPTIONS
FILE_OPEN_DIALOG_FAILED = 1
CNTL_ERROR = 2
ERROR_NO_GUI = 3
NOT_SUPPORTED_BY_GUI = 4
others = 5
.
READ table file_table into filetable index 1.
move filetable to filename.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD
EXPORTING
FILENAME = filename
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = SPACE
CODEPAGE = SPACE
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
VIRUS_SCAN_PROFILE =
IMPORTING
FILELENGTH =
HEADER =
CHANGING
DATA_TAB = datos[]
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
NOT_SUPPORTED_BY_GUI = 17
ERROR_NO_GUI = 18
others = 19
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Before the Unicode error:
CALL FUNCTION 'DOWNLOAD'
EXPORTING
filename = p_attkit
filetype = 'ASC'
TABLES
data_tab = tb_attrkit
EXCEPTIONS
invalid_filesize = 1
invalid_table_width = 2
invalid_type = 3
no_batch = 4
unknown_error = 5
OTHERS = 6.
Solution.
DATA : lv_filename TYPE string,
lv_filen TYPE string,
lv_path TYPE string,
lv_fullpath TYPE string.
DATA: Begin of wa_testata,
lv_var(10) type c,
End of wa_testata.
DATA: testata like standard table of wa_testata.
OVERLAY p_attkit WITH lv_filename.
CALL METHOD cl_gui_frontend_services=>file_save_dialog
EXPORTING
WINDOW_TITLE =
DEFAULT_EXTENSION =
default_file_name = lv_filename
WITH_ENCODING =
FILE_FILTER =
INITIAL_DIRECTORY =
PROMPT_ON_OVERWRITE = 'X'
CHANGING
filename = lv_filen
path = lv_path
fullpath = lv_fullpath
USER_ACTION =
FILE_ENCODING =
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
OTHERS = 4
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE =
filename = lv_fullpath
filetype = 'ASC'
APPEND = ' '
WRITE_FIELD_SEPARATOR = ' '
HEADER = '00'
TRUNC_TRAILING_BLANKS = ' '
WRITE_LF = 'X'
COL_SELECT = ' '
COL_SELECT_MASK = ' '
DAT_MODE = ' '
CONFIRM_OVERWRITE = ' '
NO_AUTH_CHECK = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
WRITE_BOM = ' '
TRUNC_TRAILING_BLANKS_EOL = 'X'
WK1_N_FORMAT = ' '
WK1_N_SIZE = ' '
WK1_T_FORMAT = ' '
WK1_T_SIZE = ' '
IMPORTING
FILELENGTH =
TABLES
data_tab = tb_attrkit
fieldnames = testata
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
OTHERS = 22
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
2008 May 20 9:18 AM
Hi,
different languages use different charcter sets. With unicode you can handle this more easy and comfortable. By the way you are forced to use more memory space for one charcter. Unfortunately there is not only one Unicode (UTF8, UTF16). There are standards for unicode. Nevertheless working with unicode in detail may be sophisticated.
regards
Walter Habich
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |