[RESOLVIDO]Erro ao gravar palavras com caracteres acentuado no banco de dados SQL SERVER

Olá. Estou estou fazendo meu primeiro projeto em java utilizando banco de dados SQL SERVER 2014.
A tela de cadastro esta funcionando corretamente, mas o que está me causando problema é que ao consultar os dados no banco, as palavras que possuem acentos, não estão aparecendo corretamente. Por exemplo, o nome JOSÉ, ao fazer o Select no banco aparece JOSÉ.
Se eu consultar o registro na tela por onde foi inserido o registro aparece corretamente.
Agora se eu inserir o nome JOSÉ com INSERT direto no banco, no Select aparece corretamente, mas quando chamo o registo na tela do aplicativo pelo ID aparece JOS?

Preciso que quando inserir os dados no banco tanto pelo aplicativo quanto diretamente no banco as informações sejam iguais.

Estou utilizando o método abaixo para incluir os dados na tabela:

public int incluir(pessoas objpes) throws SQLException{
    
    conexao conexao = new conexao();
    int registros;
           
    try(PreparedStatement pstmt = conexao.getConexao().prepareStatement
    ("INSERT INTO pessoas (pes_nome, pes_rg, pes_cpf, pes_end, pes_tel, pes_dtcadastro,pes_status)" +
            " VALUES (?,?,?,?,?,?,?)")){
    pstmt.setString(1,objpes.getPes_nome().toUpperCase().trim());    
    pstmt.setString(2,objpes.getPes_rg().trim());    
    pstmt.setString(3,objpes.getPes_cpf().trim());    
    pstmt.setString(4,objpes.getPes_end().trim());    
    pstmt.setString(5,objpes.getPes_tel().trim());    
    pstmt.setTimestamp(6,new java.sql.Timestamp(objpes.getPes_dtcadastro().getTime()));    
    pstmt.setInt(7,objpes.getPes_status());
    
    registros = pstmt.executeUpdate();
    }
    PreparedStatement pstmtAux = conexao.getConexao().prepareStatement("SELECT @@IDENTITY");
    ResultSet rs = pstmtAux.executeQuery();
    
    int codigo = 0;
    
    if((registros ==1)&&(rs !=null)){
        rs.next();
        codigo = rs.getInt(1);
        return codigo;}
    else{
        return codigo;
    }
}                                                                        

O que devo estar fazendo de errado?

Obrigado.

Vc precisa definir o encode correto:

Obs.: A palavra erro na programação está mais associada a uma exception gerada. Caso não tenha uma exceção, não tem ERRO, apenas um problema na forma que foi programado.

Estou utilizando a seguinte classe de conexão com o banco sql server:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;

public class conexao {

public static String base=“DBSpyke”;

private static Connection conexao;

public conexao()
{ try
    {
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      String url = "jdbc:odbc:myodbc;database="+base+";user=sa;password=sql1234;characterEncoding=UTF-8";

      conexao = DriverManager.getConnection(url);
      System.out.println("conexao ok");        
      
    }
    catch(ClassNotFoundException | SQLException erro){
        JOptionPane.showMessageDialog(null,
      "Ocorreu um erro de conexão. Verifique a Base de Dados indicada !"+"\n" +  erro.getMessage(),"Conexão",3);
    }
}

// Metodos publicos:
public Connection getConexao()
{
    return conexao;
}

}

Mas ainda continua gravando num formato errado.

Talvez seja o driver q vc está usando.

Exemplo de URL:
https://alvinalexander.com/java/java-sql-server-jdbc-driver-class-url-connection

Driver:
https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc

Opa.

Demorei pra responder pois estava estudando os drives JDBC que recomendou. No pouco entendimento que tinha, ODBC e JDBC eram a mesma coisa, mas lendo sobre o assunto descobri que fazem praticamente a mesma coisa, mas que JDBC tem que incluir o caminho do JAR na aplicação para funcionar. Dai bati bastante a cabeça mas consegui montar a conexão novamente. Por enquanto com o novo drive instalado e a nova conexão o problema dos caracteres especiais foi resolvido. Consultando tando no SGDB quanto no aplicativo as informações estão iguais.
Agora a classe de conexão ficou assim:

import java.sql.*;
import javax.swing.JOptionPane;

public class conexao {

public static String base="DBSpyke";
private static Connection conexao;

public conexao()
{ try
    {
      Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
      String url = "jdbc:sqlserver://localhost:1433;databaseName="+base+";user=sa;password=sql1234;characterEncoding=UTF-8";
      
      
      conexao = DriverManager.getConnection(url);
      System.out.println("conexao ok");        
      
    }
    catch(ClassNotFoundException | SQLException erro){
        JOptionPane.showMessageDialog(null,
      "Ocorreu um erro de conexão. Verifique a Base de Dados indicada !"+"\n" +  erro.getMessage(),"Conexão",3);
    }
}

// Metodos publicos:
public Connection getConexao()
{
    return conexao;
}

}

Obrigado pela ajuda.

Abraços.