Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Data Bases > Oracle Miscellaneous > Problem with Un...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 1 of 1 Topic 6834 of 7201
Post > Topic >>

Problem with Unicode Strings

by "André Hartmann" <andrehartmann@[EMAIL PROTECTED] > Apr 15, 2008 at 03:02 PM

Hi,
  I am having trouble with stuffing in an getting out unicode strings 
into/from my database. I will briefly describe what I am doing, hoping
that 
someone can point me to a mistake and end my weeks of trying...

* Oracle 9i client and server, connecting via OCI from a C++ (MS Dev
Studio 
2005) application
* Client OS: German Windows XP, SP2
* Server: Oracle9.2.0.1 Enterprise on Windows XP SP2,
NLS_LANGUAGE=AMERICAN
* Server character set (determined via "select value from 
nls_database_parameters where parameter='NLS_CHARACTERSET';"):
WE8MSWIN1252
* Client character set GERMAN_GERMANY.WE8MSWIN1252 (determined via
"sqlplus 
/nolog" and @[EMAIL PROTECTED]
)

  What I am doing in my program to stuff unicode in is this:

std::wstring strUnicode(L"Âb穾ü??déñf??");
....
wchar_t* pValue = (pWS_ == NULL) ? NULL : _wcsdup( strUnicode.c_str() );
size_t nSize = (pValue == NULL) ? 0 : (sizeof(wchar_t) * (1 + 
wcslen(pValue)));
....
swdReturnCode = OCIBindByPos (
(OCIStmt*) m_pOCIStatement,
(OCIBind**) &pBindHandle,
(OCIError*) m_pConnection->_getOCIError(),
(ub4) columnIndex_,
(dvoid*) pValue,
(sb4) nSize,
(ub2) SQLT_STR,
(dvoid*) NULL,
(ub2*) NULL,
(ub2*) NULL,
(ub4) NULL,
(ub4*) NULL,
(ub4) OCI_DEFAULT
);
ub2 csid = OCI_UTF16ID;
swdReturnCode = OCIAttrSet(
(void *) pBindHandle
, (ub4) OCI_HTYPE_BIND
, (void *) &csid
, (ub4) 0
, (ub4) OCI_ATTR_CHARSET_ID
, m_pConnection->_getOCIError()
);
....

  The string that I am stuffing in corresponds to the following sequence
of 
integers in my program's main memory:

194,98,231,169,190,252,1046,950,100,233,241,102,1715,1492

  When I select I get the following back (displayed as "Âb穾ü¿¿déñf¿¿"):

194,98,231,169,190,252,191,191,100,233,241,102,191,191

  So it turns out that some characters have been transformed to be 
upsode-down question marks. I see the same thing when I dont fetch with my

application but with the Oracle Enterprose Manager.

  What is wrong here? Am I missing out some im****tant conversion on the
way? 
Thanks in advance,
André
:)
 




 1 Posts in Topic:
Problem with Unicode Strings
"André Hartmann"  2008-04-15 15:02:35 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Wed Oct 15 13:38:24 CDT 2008.