我有一个名为 mydata 的表,其类型为 nvarchar(max)。这包含如下字符:é á ñ。使用 Java (Spring) 提取数据。Java 应用程序使用 utf-8 进行请求和响应。
当我执行一个简单的选择特殊字符时正确显示。
Select myData from myTable
我有一个简单的 SQL 函数,它刚刚收到一个 nvarchar 并返回它。
CREATE function getIt (@mydata nvarchar(max) )
returns nvarchar(max)
as
begin
return @mydata;
end
当我对特殊字符使用函数时,不显示并由 � 符号替换。
Select dbo.getIt(myData) as myData from myTable
我已经使用 mySQL 和 Oracle 测试了相同的过程,在这种情况下,SQL 函数不会更改特殊字符。我在 Ubuntu Linux 机器中使用 Tomcat。数据库是 SQL Sever 2005。我使用的是 JDTS 1.3。
感谢您的帮助。
额外说明
如果字段 myData 包含 ñ 例如,如果 a 执行以下操作:
Select
myData,
dbo.getIt(myData) as myData2
from myTable
网页中显示的列的结果将是 ñ ? 或ñ � NVarchar 正确存储数据,但由于某种原因,该函数发生了一些变化。如果我在编码时遇到问题,则 ñ 在这两种情况下都不会正确显示。