Pergunta

Eu tenho um aplicativo Java decodificação de um String codificado UTF-8 recebeu sobre o fio e salvá-lo em uma coluna varchar no meu banco de dados (SQL Server 2000). Estou salvando o registro usando CallableStatement do JDBC (chamando o método setString para definir o parâmetro para esta coluna).

O problema que eu estou vendo é que uma String particular, tem sido escrito que contém o valor ASCII 0 (NUL). Isto sugere-me que servidor SQL não pode representar um caractere Unicode particular e do driver JDBC decidiu substituto no valor ASCII 0, embora eu possa estar errado.

  • Tem mais alguém encontrou este problema?
  • Existe um mecanismo que posso usar para causar a chamada CallableStatement a falhar nesta situação?

Idealmente, eu gostaria de garantia de que os dados foram salvos exatamente como especificado, ou então "falhar rapidamente".

O meu conjunto de caracteres de banco de dados é Latin1_General_AS_CS.

Agradecemos antecipadamente.

Foi útil?

Solução

Você precisa estar usando tipo 'NVARCHAR' no banco de dados.

Outras dicas

Apenas um WAG, mas usando .setBytes(String parameterName, byte[] x) que truque? A matriz de bytes viria de myString.getBytes(). Você pode querer tentar usar usando diferentes conjuntos de caracteres com getBytes() também.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top