什么是VBS UCASE功能对日语的影响?

时间:2016-10-20 00:07:42

标签: vbscript character-encoding asp-classic uppercase

为了避免比较ASP经典网站上的字符串的案例冲突,一些继承的代码首先使用UCASE()转换所有字符串。这似乎适用于各种语言......除了日语。这是日语字符串的简单示例。我已经提供了UrlEncoded值,以便清楚地了解幕后的变化:

Server.UrlEncode("戦艦帝国") = %E6%88%A6%E8%89%A6%E5%B8%9D%E5%9B%BD 
UCASE("戦艦帝国") = ƈ�ȉ�Ÿ�ś�
Server.UrlEncode(UCASE("戦艦帝国")) = %C6%88%A6%C8%89%A6%C5%B8%9D%C5%9B%BD

UCASE用这个日语字符串做任何明智的事情吗?或者它的行为有缺陷,未定义或已知与日语不兼容?

(LCASE单独留下样本字符串。但现在我担心将所有比较转换为LCASE,因为我不知道它是否会破坏与UCASE一起工作的其他非西方语言。 ...)

1 个答案:

答案 0 :(得分:2)

https://msdn.microsoft.com/en-us/library/1systdcy(v=vs.84).aspx

  

只有小写字母转换为大写;所有大写字母和非字母字符保持不变。

https://en.wikipedia.org/wiki/Letter_case

  

大多数西方语言(特别是那些具有基于拉丁语,西里尔语,希腊语,科普特语和亚美尼亚语字母的书写系统的语言)使用书面形式的信件案例作为清晰度的辅助。使用两个单独案例的脚本也称为两个脚本脚本。许多其他书写系统在majuscules和minuscules之间没有区别 - 一个叫做unicameral script或unicase的系统。

"小写或大写字母"不适用于中日韩语言,因此,UCase()的输出应保持不变。