我知道<%= javascript_tag "GetMarineWeather((#{@latitude.to_json}, #{@longitude.to_json}));" %>
(没有扩展名)不理解非英文字符,但为什么我这样说:
ASCII
该函数返回209.它是使用扩展名,还是它发生了什么?谢谢你的回答。
答案 0 :(得分:1)
209 的数字 ACP代码值 Ñ
拉丁大写字母N,其中Tilde 对任何{{1}有效},ACP1250
,ACP1252
,ACP1254
和ACP1257
encodings(请参阅下面的补充说明)。
阅读MSDN参考(适用于:SQL Server,从2008年开始):
ASCII (Transact-SQL)返回的 ASCII代码值 字符表达式的最左边的字符。
这有点简洁,但它是否简洁,精确?我不这么认为:最初基于英文字母,ASCII将 128 指定的字符编码为 七位 整数如the ASCII chart所示。但是,ACP1258
返回的 209 数字显然是 8位 整数。
实际上,ASCII('Ñ')
函数返回字符表达式最左边字符的 ACP代码值(请参阅ACP: Acronym for the Windows (ANSI
) code page in use。)<登记/>
为了证明,让我们在SQL Server(Transact-SQL)中使用下一个效果:the ASCII
function is the opposite of the CHAR
function。 MSDN参考说明了一点:
BTW,所有这些差异来自臭名昭着的术语混淆,即慷慨地滥用(交换)诸如CHAR (Transact-SQL)将int ASCII代码转换为字符。
语法
ASCII
参数
CHAR ( integer_expression )
0到255之间的整数。 NULL是 如果整数表达式不在此范围内,则返回。
integer_expression
,ASCII
,ANSI
或甚至像CP
之类的术语,{ {1}},UNICODE
等等。
补充:代码 209 的Windows ANSI字符表(下表来自我的小UTF-16
脚本):
UCS-2