When executing the query, I get the characters ???? (inverted) instead of Cyrillic. How to solve the problem?

using Oracle.ManagedDataAccess.Client; ... //Коннект к БД public string oracledbConnect() { string Code = String.Empty; string conn = "DATA SOURCE="+ Ip +":"+ Port +"/" + ServiceName +";PASSWORD=" + Password +";PERSIST SECURITY INFO=True;USER ID="+ Login; try { OraConn = new OracleConnection(conn); } catch(Exception ex) { return Code = ex.Message; } return Code = "Success"; } //Выполнение запроса public DataTable oraQuery(string query) { string resultQuery = String.Empty; DataTable data = new DataTable(); try { OraConn.Open(); OracleCommand oraComm = new OracleCommand(query, OraConn); oraComm.CommandType = CommandType.Text; OracleDataReader reader = oraComm.ExecuteReader(); data.Load(reader); OraConn.Close(); } catch (Exception ex) { string Error = ex.Message; } return data; } 

UPD: nls_database_parameters

 NLS_CHARACTERSET WE8MSWIN1252 
  • Decay the encoding via sql query set-th - nick_n_a
  • @nick_n_a And can you give an example? SELECT * FROM LIST_COUNTRY - creamsun

1 answer 1

The problem was in the database, was incorrectly configured. It turned out when checking that the error in nls_database_parameters :

As it was:

 NLS_LANGUAGE AMERICAN NLS_CHARACTERSET WE8MSWIN1252 

How to:

 NLS_LANGUAGE RUSSIAN NLS_CHARACTERSET CL8MSWIN1251