by Michael S. Kaplan, published on 2005/10/12 03:31 -04:00, original URI: http://blogs.msdn.com/b/michkap/archive/2005/10/12/479561.aspx
I am talking about the reverse solidus, U+005c (also known as the backslash to some).
It is even known as the "whack" to others (when some people talk about UNC paths, they will say 'whack whack servername' when they mean \\servername).
I am sure you may know of other names.
Though if you are on a Windows system with a Korean system locale, you have another name for it -- Won sign (I talked about this a little bit here).
And if you are on a Windows system with a Japanese system locale, you have yet another name for it -- Yen sign (I hinted at this briefly here).
Well, Larry Osterman talked back in June about why the DOS PATH character is '\'.
However, in the JIS and KSC standards, 0x5c is where the Yen and the Won are stored. And it is not like you could have a system without paths just because it has a Japanese or Korean configuration, right?
So in code page 932, 0x5c (YEN SIGN) has to have a round trip mapping to U+005c (REVERSE SOLIDUS), with a mere best fit mapping to U+00a5 (YEN SIGN).
And in code page 949, 0x5c (WON SIGN) has to have a round trip mapping to U+005c (REVERSE SOLIDUS), with a mere best fit mapping to U+20a9 (WON SIGN).
In both cases, the importance of money was overshadowed by the importance of a path separator (this is, by the way, yet another reason to be sure to always use Unicode!).
This all came up yesterday when in a comment to my post Show me the [small]money, Yoshihiro Kawabata mentioned that U+005c was also being accepted -- he even ran through every character in the BMP (SQL he ran available online!) to see what else works in SQL Server as a "currency sign". It looks like they did indeed add some more currency symbols in SQL Server 2005, although the Yukon documentation has not completely caught up with the list. The additions in Yukon are:
Added in SQL 2005 U+0024
BENGALI RUPEE MARK
BENGALI RUPEE SIGN
THAI CURRENCY SYMBOL BAHT
KHMER CURRENCY SYMBOL RIEL
FRENCH FRANC SIGN
NEW SHEQEL SIGN
GERMAN PENNY SIGN
SMALL DOLLAR SIGN
FULLWIDTH DOLLAR SIGN
FULLWIDTH CENT SIGN
FULLWIDTH POUND SIGN
FULLWIDTH YEN SIGN
FULLWIDTH WON SIGN
(Note that as I talked about in Show me the [small]money, most of the currency symbols are still not on the list, despite the additions that have been done!)
I am not going to get into why I think this special relationship between U+005c, U+00a5, and U+20a9 feels kind of disconnected and odd and awkward, because I understand (given the absolute historical identity and need of the path separator) why it has to be there.
And I do understand why it would be on SQL Server's magical list of things that are treated as currency symbols (after all, customers adding currency data from non-Unicode Korean and Japanese sources should not fail).
Given how we as a company try to act like the whole issue not there a lot of the time, I even understand why it would not ever have been documented since documenting feels kind of awkward.
So I would rather call it a path separator on Windows, since that is true on every language configuration upon which Window is run. It makes the whole situation a lot easier to deal with, conceptually....
(In the meantime, feel free to vote on Kawabata-san's issue related to the unlisted U+005c in the documentation at the MSDN Product Feedback Center!)
This post brought to you by "\" (U+005c, a.k.a. REVERSE SOLIDUS)
# Ben Bryant on 12 Oct 2005 10:19 AM:
# Michael S. Kaplan on 12 Oct 2005 11:10 AM:
# Maurits [MSFT] on 12 Oct 2005 4:15 PM:
# Michael S. Kaplan on 12 Oct 2005 4:33 PM:
# Yoshihiro kawabata on 13 Oct 2005 5:43 AM:
# Nick Lamb on 14 Oct 2005 8:46 AM:
# Michael S. Kaplan on 14 Oct 2005 10:13 AM:
# Michael S. Kaplan on 14 Oct 2005 10:15 AM:
# Massuda on 1 Nov 2005 11:21 AM:
2007/03/28 A yen for Yen may be left unsatiated
2005/12/28 Getting rid of your extra yen
2005/11/09 Getting around the default system locale
2005/11/01 I WON to talk about the YEN
2005/10/14 The mission of GIFT
go to newer or older post, or back to index or month or day