Questions tagged «encoding»

1
如何将SQL Server Unicode / NVARCHAR字符串设置为表情符号或补充字符?
我想根据其Unicode代码点将Unicode字符串变量设置为特定字符。 我想使用65535以上的代码点,但是SQL Server 2008 R2数据库的排序规则为SQL_Latin1_General_CP1_CI_AS。 根据Microsoft的NCHAR文档,该NCHAR函数采用一个整数,如下所示: integer_expression 当数据库的排序规则不包含补充字符(SC)标志时,这是一个从0到65535(0到0xFFFF)的正整数。如果指定的值超出此范围,则返回NULL。有关补充字符的更多信息,请参见排序规则和Unicode支持。 当数据库的排序规则支持补充字符(SC)标志时,这是一个从0到1114111(从0到0x10FFFF)的正整数。如果指定的值超出此范围,则返回NULL。 所以这段代码: SELECT NCHAR(128512); NULL在此数据库中返回。 我希望它返回与此相同的内容: SELECT N'😀'; 在排序规则“不包含补充字符(SC)标志”的数据库中,如何使用代码(不使用实际的表情符号字符)将Unicode字符串变量(例如nvarchar)设置为表情符号? 表情符号Unicode代码点的完整列表 (最终,我希望任何角色都能正常工作。为了方便参考,我只是选择了表情符号。) (尽管服务器是SQL Server 2008 R2,但我也对以后版本的任何解决方案感到好奇。) 假设没有办法,是否可以在另一个具有适当排序规则的数据库中引用内联用户定义函数? 如何找到带有“ supplementary character”标志的排序规则? 这不会在我们的服务器上返回任何记录: SELECT * FROM sys.fn_helpcollations() WHERE name LIKE 'SQL%[_]SC'; 似乎引入了SQL Server 2012 Latin1_General_100_CI_AS_SC可以正常工作。您可以在较旧的实例上安装排序规则吗? 整理参考: 在SQL Server中,char,nchar,varchar和nvarchar有什么区别? Microsoft的补充字符归类信息 Microsoft的SQL Server 2008 R2排序规则列表 是否有解释说明为什么SQL Server不管排序规则如何都可以理解和处理扩展字符(除了从角度来看之外)NCHAR?

3
SQLCMD命令无法插入重音符号
我试图运行sqlcmd.exe以便从命令行设置新数据库。我正在Windows 7 64位上使用SQL SERVER Express 2012。 这是我使用的命令: SQLCMD -S .\MSSQLSERVER08 -V 17 -E -i %~dp0\aqualogyDB.sql -o %~dp0\databaseCreationLog.log 这是一部分sql文件创建脚本: CREATE DATABASE aqualogy COLLATE Modern_Spanish_CI_AS WITH TRUSTWORTHY ON, DB_CHAINING ON; GO use aqualogy GO CREATE TABLE [dbo].[BaseLayers] ( [Code] nchar(100) NOT NULL , [Geometry] nvarchar(MAX) NOT NULL , [IsActive] bit NOT NULL …

4
为什么varchar数据类型允许unicode值?
我有一个带有varchar列的表。允许使用商标(™),版权(©)和其他Unicode字符,如下所示。 Create table VarcharUnicodeCheck ( col1 varchar(100) ) insert into VarcharUnicodeCheck (col1) values ('MyCompany') insert into VarcharUnicodeCheck (col1) values ('MyCompany™') insert into VarcharUnicodeCheck (col1) values ('MyCompany░') insert into VarcharUnicodeCheck (col1) values ('MyCompanyï') insert into VarcharUnicodeCheck (col1) values ('MyCompany') select * from VarcharUnicodeCheck 但是varchar的定义说,它允许非Unicode字符串数据。但是Trademark(™)和Registered(®)符号是Unicode字符。该定义是否与varchar数据类型的属性相矛盾?我读了几个链接,例如第一个和第二个。但是,当定义说它仅允许非Unicode字符串值时,我仍然不明白为什么它允许Unicode字符串。



3
使用PostgreSQL 8.4,如何将bytea转换为postgres中的文本值?
在我的应用程序中,我使用C代码将数据插入数据库中,因为从不可信来源收到的字符串已经使用PQescapeByteaConnlibpq库转义了。这工作得很好,即以八位字节格式生成字符串。参见以下示例, 输入字符串: \n\t\f\b\p\k\j\l\mestPrepared 输出字符串: \\012\\011\\014\\010pkjlmestPrepared 输出字符串将插入数据库中。现在,我使用JDBC以Java代码从数据库中检索该数据。我如何才能使字符串不转义回其原始值? 我想到了两种可能的方法, 更改数据库检索查询,并将此字段传递给postgres的任何String操作函数,即可以将bytea转换为文本的函数。 用Java代码进行解码。 我知道方法1会更有效。我已经尝试了这里列出的几乎所有功能,但是没有任何效果。请帮忙!! 我正在Linux机器上使用PostgreSQL的8.4版本。

1
启动SQL Server 2017服务时出错。错误代码3417
我的计算机上安装了SQL Server 2017。这是SELECT @@VERSION返回的内容: Microsoft SQL Server 2017(RTM-GDR)(KB4293803)-14.0.2002.14(X64)2018年7月21日版权所有(C)2017 Windows 10 Enterprise 10.0(内部版本17134)上的Microsoft Corporation Enterprise Edition(64位): )` 到昨天为止,一切都很好。突然SQL SERVER Service没跑。当我想手动运行该服务时,显示3417 error。当我检查事件日志时,看到此错误: 数据库'master'的脚本级别升级失败,因为升级步骤'msdb110_upgrade.sql'遇到错误200,状态7,严重性25。这是一个严重的错误情况,可能会干扰常规操作,并且数据库将脱机。如果错误是在“ master”数据库升级期间发生的,它将阻止整个SQL Server实例启动。检查以前的错误日志条目中是否有错误,采取适当的纠正措施,然后重新启动数据库,以便脚本升级步骤运行完成。 经过一番谷歌搜索后,我发现可以使用它/T902 switch并尝试解决问题。但是没有解决方案对我有用。因此,我安装了另一个相同实例SQL SERVER 2017并还原了数据库。现在,新安装的实例具有相同的问题。 可能是什么问题呢? 更新 这是SQL Server的完整错误日志。 2018-09-17 13:06:47.29 spid6s配置选项“显示高级选项”从1更改为1。运行RECONFIGURE语句进行安装。 2018-09-17 13:06:47.29 spid6s配置选项“显示高级选项”从1更改为1。运行RECONFIGURE语句进行安装。 2018-09-17 13:06:47.29 spid6s配置选项'Agent XPs'从1更改为1。运行RECONFIGURE语句进行安装。 2018-09-17 13:06:47.29 spid6s配置选项'Agent XPs'从1更改为1。运行RECONFIGURE语句进行安装。 2018-09-17 13:06:47.29 spid6s创建SSIS文件夹... 2018-09-17 13:06:47.30 …

1
PostgreSQL:设置默认的psql客户端编码
当我使用连接到Postgresql数据库时psql,通常会收到以下消息: => SELECT * FROM question_view ; ERROR: character with byte sequence 0xd7 0x9e in encoding "UTF8" has no equivalent in encoding "LATIN1" 按照这个答案,我知道我应该相应地更改客户端编码: SET client_encoding = 'UTF8'; client_encoding每次连接数据库时都要进行更改。有没有办法在.pgpass文件中或其他任何地方永久配置此设置?

1
在Python中检索到的SQL Server VARCHAR列的编码问题
最近,我们遇到了与字段相关的编码问题,该字段在SQL Server中存储为varchar(120)。在SSMS中,varchar显示为: “谁杀了乔本?” 但是,将其引入python后,显示为: 我已经从Python方面对此进行了研究,并且没有任何奇怪的事情发生。我的理论是,SQL Server中的varchar接受的是UTF-8字符,这些字符在python中的显示方式不同于SSMS。我对SQL Server中的编码不是很熟悉。有人可以让我知道以下内容: SSMS中有没有办法查看varchar的编码?例如,看到\ x82而不是显示当前来自SSMS的逗号? 我们正在使用SQL Server2008。是否可以在不使用导入/导出工具或转储到平面文件的情况下,将任何UTF-8字符的编码更改为ASCII字符?即可以通过查询进行此转换吗? 有什么方法可以通过查询以编程方式识别有问题的记录(问题定义为ASCII不支持的UTF-8字符)? 先感谢您! 使用,sp_help N'table_name';我发现此VARCHAR列的归类为SQL_Latin1_General_CP1_CI_AS。

2
将Unicode转换为非Unicode /将NVARCHAR转换为VARCHAR时自动翻译
Unicode代码点9619是一个称为“深色阴影”的字符:▓(http://unicode-table.com/en/search/?q=9619)。 使用SQL_Latin1_General_CP1_CI_AS归类和1252代码页,我希望将Unicode字符转换/转换为非Unicode数据类型将导致出现问号(?),因为代码页1252似乎不包含此字符,并且这似乎是SQL Server的无法进行转换时的行为。 所以我的问题是:为什么SQL Server将此字符转换为ASCII代码166,即“管道,竖线损坏”:¦? SELECT NCHAR(9619), CAST(NCHAR(9619) AS CHAR(1)), ASCII(CAST(NCHAR(9619) AS CHAR(1)))
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.