Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Special characters converted in wrong in Upper case ?

Former Member
0 Kudos

Hello,

In material description , some characters such as µ when converted into upper case it will be 'M' in stead of 'µ' . This is in SAP ECC unicode . But it's ok in R/3.

So in this case, Is there any solution for this problem ?

Thanks

1 ACCEPTED SOLUTION

Former Member
0 Kudos

In material description , some characters such as µ when converted into upper case it will be 'M' in stead of 'µ' .

Though in general I agree with Leandro's answer I'd like to make a silly point here. Both of you mention the wrong upper case letter for u03BC (Unicode code point U03BC), which should be u039C (Unicode code point U039C) and not M (Unicode code point U+004D, which corresponds to US-ASCII M). Just because the rendered letter looks the same (glyph as they call it in Unicode) doesn't mean that it's actually the same Unicode code point...

I'm aware that the error is probably due to simply typing an M instead of the proper letter, but as lots of people seem confused with Unicode it might be good to point out the difference. If you copy and past the following sample program, you will get the output M <> u039C:


data:
  M1 type CHAR1 value 'M',  " U+004D
  M2 type CHAR1 value 'u039C'.  " U+039C

write / M1.
if M1 = M2.
  write '='.
else.
  write '<>'.
endif.
write M2.

In your ABAP Editor you possibly see the difference right away (depending on your settings), because the value for M2 will show up as something like ☐. Sorry for nitpicking, but I couldn't resist...

Cheers, harald

p.s.: Here's a link to Wikipedia's listing of Greek characters in Unicode.

6 REPLIES 6

Former Member
0 Kudos

Hi,

Where do you see the "M" ?

Remember that 'µ' is a greek letter (spell mi) and in upper case is 'M' !

http://pt.wikipedia.org/wiki/%CE%9C

Best regards,

Leandro Mengue

Former Member
0 Kudos

In material description , some characters such as µ when converted into upper case it will be 'M' in stead of 'µ' .

Though in general I agree with Leandro's answer I'd like to make a silly point here. Both of you mention the wrong upper case letter for u03BC (Unicode code point U03BC), which should be u039C (Unicode code point U039C) and not M (Unicode code point U+004D, which corresponds to US-ASCII M). Just because the rendered letter looks the same (glyph as they call it in Unicode) doesn't mean that it's actually the same Unicode code point...

I'm aware that the error is probably due to simply typing an M instead of the proper letter, but as lots of people seem confused with Unicode it might be good to point out the difference. If you copy and past the following sample program, you will get the output M <> u039C:


data:
  M1 type CHAR1 value 'M',  " U+004D
  M2 type CHAR1 value 'u039C'.  " U+039C

write / M1.
if M1 = M2.
  write '='.
else.
  write '<>'.
endif.
write M2.

In your ABAP Editor you possibly see the difference right away (depending on your settings), because the value for M2 will show up as something like ☐. Sorry for nitpicking, but I couldn't resist...

Cheers, harald

p.s.: Here's a link to Wikipedia's listing of Greek characters in Unicode.

0 Kudos

Hi,

And I agree with Harald, because Unicode really does a supod rte for "multi-characters".

And what you see equal is (in real) different... like M <> M ...

Best regards,

Leandro Mengue

0 Kudos

Hi,

Thank you for your answer !

Here , In R/3 , When creating a material with description that contain the character 'u03BC' . There will be 2 description in table MAKT .

MAKT-MAKTX : For normal characters

MAKT-MAKTG : For upper case characters , When our client search for values when pressing F4 in material , If there's material description that contain 'u03BC', It will be displayed as 'M' in the text . This will happen in ECC 6 not in R/3 ( in R/3 two texts are the same) .

So here how can we solve this problem ?

Thanks again for your help

0 Kudos

Hi,

I think that no exists a way to solve this, because is a behavior of ECC / Unicode.

We have a rule to dont use scpecial characters in material description like u03BC , Ø , etc...

Best regards,

Leandro Mengue

0 Kudos

MAKT-MAKTG : For upper case characters , When our client search for values when pressing F4 in material , If there's material description that contain 'u03BC', It will be displayed as 'M' in the text . This will happen in ECC 6 not in R/3 ( in R/3 two texts are the same) .

The different behavior you're observing between what you call R/3 and ECC 6 is not due to the different releases, but based on the fact that one system is Unicode enabled and the other not. I suspect that you are most likely logging onto the system with a language that's linked to code page 1100 (in the non-Unicode release). Code page 1100 is similar to the Latin-1/ISO-8859-1 code page, which is designed to have most characters for western languages, but does not contain all Greek letters (SAP would most likely use code page 1700 if you set a greek locale).

Again, it may sound silly, but you have to distinguish between the symbol µ (Unicode code point U+00B5) and the lower case greek letter u03BC (U03BC). SAP code page 1100 contains only the symbol µ (U00B5), which represents the prefix micro as for example in 1µm = 1 micro meter = 0.000001m. Neither the greek lower case letter u03BC (U+03BC) nor it's corresponding upper case letter exists in code page 1100.

The Unicode standard defines the greek upper case letter u039C (U039C) as the upper case to use for both the symbol µ (U00B5) and the lower case greek letter u03BC (U+03BC), see for example the Unicode mapping chart for Greek (so that's why you see a different behavior in ECC 6).

I'm not sure why, but for some reason SAP found it worthwhile mentioning that they actually also convert the symbol µ (U00B5) to u039C (U039C), though that essentially just means following Unicode standard. Anyhow, if you're interested in further details, check out OSS note 1078295 - Incomplete to upper cases in old code pages.