Storing 2000 chinese characters in a column

Hi,
I have declared VARCHAR2(4000 CHAR) in my table. But it is still allowing me to store only 1333 chinese characters (4000/3byte). How do I achieve to store 2000 chinese characters in my table?
Thanks.
Regards
DARMA
Edited by: Darma on Oct 2, 2009 10:15 AM

Depends on which character set you need. Potentially a 'double byte' db character set could work, such as ZHT16HKSCS taking 2 bytes storage per character.
http://download.oracle.com/docs/cd/B19306_01/server.102/b14225/applocaledata.htm#sthref1960

Similar Messages

  • Cannot Store Chinese Characters In Oracle 9.2.0.7 Database

    Hi,
    I'm having trouble localizing my Oracle 9.2.0.7 / ASP web application for our Chinese-speaking users.
    My Oracle 9.2.0.7 Database has NLS_NCHAR_CHARACTERSET set to AL16UTF16.
    I've set up a test table thus:
    CREATE TABLE "TBL_TEST_CH"
    field1                          NVARCHAR2(40),
    field2                          NVARCHAR2(40)
    I have the Chinese character set installed on my database / web server (same box), as well as a test client machine. I can see Chinese characters in my web browser, and can enter them in a test ASP page I've set up. When I execute an insert statement via ADO, the insert statement seems to work, but the result is that the data seems to be stored as upside-down question marks.
    I thought perhaps the data was being somehow scrambled between the web app and the database, so I set up an external table import the Chinese data from a Unicode text file:
    CREATE TABLE kenny.ch_import
         FIELD1          NVARCHAR2(255),
         FIELD2          NVARCHAR2(255)
         ORGANIZATION EXTERNAL (TYPE oracle_loader
         DEFAULT DIRECTORY ext_dat_dir
         ACCESS PARAMETERS
         (RECORDS DELIMITED BY ":"
         FIELDS TERMINATED BY "~"
         missing field values are null)
         LOCATION (ext_dat_dir:'test_ch.txt'))
         reject limit unlimited
    However, when I query the data in the external table using my web application, it comes back with garbage like "ÿþ1" and the like.
    To attempt to determine if the database is capable of storing the Chinese characters, I've performed the following test:
    1) I insert a Chinese character in an NVARCHAR2 field in my table by using the UNISTR function thus:
    insert into tbl_test_ch (field1) values (unistr('\3E00'))
    2) I interrogated the value using the dump function thus:
    select dump(field1, 1016) FROM tbl_test_ch
    I'm struggling to understand the output. Obviously the character set being used is "AL16UTF16" (which I would expect to be able to store Chinese characters), but the return_format argument I've provided to the function (1016) should return the hexadecimal code point of the character that's being stored. I would expect this to be the same as I inserted ("3E00"), but I'm getting the following output:
    DUMP(FIELD1,1016)
    Typ=1 Len=2 CharacterSet=AL16UTF16: 3e,0
    I'd really appreciate any suggestions on what I could do next to determine exactly where the problem lies. I've not been able to convince myself that the database is correctly storing the Chinese character data, but I appreciate equally that the problem could lie elsewhere.
    Thanks in advance,
    Kenny McEwan.

    Thanks, Serguisz.
    My technology stack is as follows:
    ASP 3.0 web application, running on IIS6.
    On the web servier, I have MDAC 2.8 SP2 on Windows Server 2003 SP1.
    On the Oracle database server, I have Windows Server 2003 SP1.
    My Oracle database version is 9.2.0.7.
    The client I've been using in this investigation is Internet Explorer 6.0.2900.
    It does look like you're right about characters coming from the application are being corrupted. To support this, I tried to insert the chinese character 博 as well as the Unihan character 中 from a web page in my application. I then used the dump function to interrogate the contents of the field I input to thus:
    select dump(field1, 1016) FROM tbl_test_ch
    DUMP(FIELD1,1016)
    Typ=1 Len=2 CharacterSet=AL16UTF16: 0,bf
    Typ=1 Len=2 CharacterSet=AL16UTF16: 0,bf
    Both characters seem to have suffered the same corruption.
    The problem seems to happen in the other direction as well - even after verifying that the character detailed in the previous post was stored correctly, it is still displayed by my web app as an upside down question mark.
    Do you have any suggestions on how to proceed?
    Best regards,
    Kenny.

  • Unable to read chinese characters in a flat file to external table

    Hi All,
    We have a flat file containing data in chinese. We are using external table to read data in files. When i do select <coulmn-name> from <table> it displays box for the chinese characters. The column is of type varchar2.
    The NLS_LANGUAGE is AMERICAN and NLS_CHARACTERSET is AL32UTF8.
    The character set is mentioed as UTF8 in external table defnition.
    Is the external table not reading these charcters properly? Should any patch be installed or some settings should be changed for sql developer to to display chinese character?

    The NLS_LANG environment variable/registry string variable (You are just one of the 1000s of 'anonymous' users refusing to post platform and version), so NOT NLS_LANGUAGE, on the server hosting the file, should be set to anything ending in .AL32UTF8
    Sybrand Bakker
    Senior Oracle DBA

  • Problems in displaying chinese characters with utf-8 encoding

    Hi,
    I got problem in displaying chinese characters in my web application.
    I am creating a web application supporting both English and Chinese charaters. What I am trying to do is:
    1. storing some chinese characters via a web page (page1) into database.
    2. retrieve the chinese characters via another web page (page2) from the database.
    Once I put the Chinese characters on the webpage (page1 in step #1), it displayes well (the readable chinese characters) before I submit this page (after submit, the data will be stored into the database).
    But when I tried to display the chiese characters via page2 in step#2, I got un-readable characters displayed.
    The running configuration is: Sun Application Server (coming and with the JSC2) and MySQL server 5.0. And I setup the database server with utf8 as character-set.
    It seems like the chinese characters got messed up throught the round-trip (from page1<----via jdbc---->database<----via jdbc------>page2).
    From the database, I found the chinese characters are there. Any helps are appreciated.

    Hi,
    I am trying to insert new record.The record may contain chineese or English data.
    I did same what u specified.
    first I converted to the byte UTF8.again,I converted byte to string using 8859_1.
    the values are not storing chinese characters.
    pls suggest me.
    below is my code.
                                  ascCode = req.getParameter("asccode");
                                  countryCode = req.getParameter("countrycode");
                                  ascName      = req.getParameter("ascname");
                                  address1     = req.getParameter("ascaddress1");
                                  address2 = req.getParameter("ascaddress2");
                                  System.out.println("ASC NAME:"+ascName);
                                  System.out.println("ADDRESS1:"+address1);
                                  System.out.println("ADDRESS2:"+address2);
                                  ascC = ascCode.getBytes("UTF8");
                                  coun = countryCode.getBytes("UTF8");
                                  ascN           = ascName.getBytes("UTF8");
                                  add1 = address1.getBytes("UTF8");
                                  add2          = address2.getBytes("UTF8");
                                  System.out.println("ASC NAME:"+ascN);
                                  System.out.println("ADDRESS1:"+add1);
                                  System.out.println("ADDRESS2:"+add2);
                                  ascCode = new String(ascC,"8859_1");
                                  countryCode= new String(coun,"8859_1");
                                  ascName = new String(ascN,"8859_1");
                                  address1 = new String(add1,"8859_1");
                                  address2 = new String(add2,"8859_1");
                                  System.out.println("ASC NAME:"+ascName);
                                  System.out.println("ADDRESS1:"+address1);
                                  System.out.println("ADDRESS2:"+address2);
    thanks.

  • Issue Searching for Chinese Characters

    I am creating pdfs from SQL Server Reporting Services. I have the data stored in Chinese characters and it displays fine when the files are opened. Our problem is we are unable to search for any Chinese characters. When we copy a Chinese character from the document and paste into the search box we get the following and it does not find the characters.   
    When I inspect the Fonts it has the following :
    Calibri /regular/bold/Italic (Embedded Subset)
         Type:True Type
         Encoding:Ansi
    PMingLiU (Embedded Subset)
         Type:True Type
         Encoding:Ansi
    PMingLiU (Embedded Subset)
         Type:True Type(CID)
         Encoding:Identity-H
    Do I need to install different fonts on my server or clients to make the search box recoginize the Chinese characters.
    I am using Reader v10.1.7 and I have installed both Chinese font packs

    What is your operating system?
    I cannot reproduce this with English Reader 11.0.3 on Windows 7.  I open a random Chinese document (i.e. http://newyork.china-consulate.org/chn/lszj/P020110622119203610776.pdf), then search for some Chinese characters (e.g. 中国), it displays it correctly in the search box, and also finds the characters in the document:
    Do you use the English or Chinese Reader version?

  • Store&read chinese characters in MS SQL server 2000 using Java

    Hi,
    I have a problem to store Chinese characters in MS SQL Server 2000, storing question marks(??????) instead of Chinese characters
    I am using JSF framework, SUN APPLICATION Server 9.1 , MS SQL Server 2000 server and Microsoft data source driver class (com.microsoft.sqlserver.jdbc.SQLServerDataSource) to connect db.
    I have one solution:
    IN JSP:
    <%@page contentType="text/html"%>
    <%@page pageEncoding="UTF-8"%>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    and
    In database column type should “nvarchar” in place of varchar
    while inserting or updating the same need to add ‘N’ prefix with the value like insert into client(Name, Id ….) values (N+)
    the above is working fine but the problem is here i have already defined database with 100s of tables I cant change database tables as well as queries
    Thanks,
    Sathi

    I don't know any betterer option, than to copy the database tabels redefining the Chinese data fields as nvarchar.
    To be frank I had also problems writing to a html file Chinese text stored in MS SQLServer 2000 nvarchar fields.
    The following worked:'
         public String getEncodedData(ResultSet resultSet, int columnIndex, String charset)
         throws SQLException
              //final String methodName = "getEncodedData";
              InputStream binaryStream =resultSet.getBinaryStream(columnIndex);
              String readStringFromStream=readStringFromStream(binaryStream, charset);//UTF_16LE);
              return readStringFromStream;
         public String readStringFromStream(InputStream inputStream, String charset) {
              final String methodName = "readStringFromStream";
              StringBuffer buffer = new StringBuffer();
              try {
                   int ch;
                   InputStreamReader isr = new InputStreamReader(inputStream, charset);
                   Reader in = new BufferedReader(isr);
                   while ((ch = in.read()) > -1) {
                        buffer.append((char)ch);
                   in.close();
                   return buffer.toString();
              } catch (IOException exception) {
                   Log.printError(this,methodName, exception);
                   return null;
         }And writing it to file:
         public void writeEncodedStringToFile(String text, String filePath, String charset, boolean append){
              final String methodName = "writeEncodedStringToFile";
              OutputStreamWriter writer= null;
              try {
                   FileOutputStream fileOutputStream = new FileOutputStream(filePath, append);
                   writer = new OutputStreamWriter(fileOutputStream, charset);
                   writer.write(text);
              } catch (IOException exception) {
                   Log.printError(this,methodName, exception);
              }finally{
                   try {
                        writer.close();
                   } catch (IOException exception) {
                        Log.printError(this,methodName, exception);
         }Edited by: astlanda on Feb 10, 2009 11:13 PM
    Edited by: astlanda on Feb 10, 2009 11:21 PM

  • Storing chinese characters on Oracle 8.0.6

    My development environment is Oracle 8i (8.1.5), with a database setup with langange/territory/charset as /American/America/US7ASCII. I use the 8i jdbc thin driver in my servlet to store chinese characters to the database and everything is fine. However, in the production environment, somehow I need to use oracle 8.0.6 and the database nls setup is American/America/WEC8DEC, but some (not all) could not be displayed. Is this the wrong nls setup, or due to jdbc driver (8.0.6). Please help!

    Neither your database character set nor your national character set support Chinese characters. Both character sets are set to use the ISO 8859 character set, which only stores English and Western European characters.
    If you want to store Chinese characters in this database, you will need to use a character set that supports Chinese (i.e. one of the Unicode character sets). Since there are no Chinese character sets that are strict binary supersets of ISO 8859-1, changing the character set will generally require rebuilding the database.
    Justin
    Distributed Database Consulting, Inc.
    http://www.ddbcinc.com/askDDBC

  • How is WE8MSWIN1252 characterset storing chinese characters???

    I've read several oracle globalization documents and I'm very confused now. Here's my setup:.. everything is on 1 machine
    I'm runnig oracle 9.2.0.4 database on windowsXP.
    HKLM\SOFTWARE\ORACLE\NLS_LANG registry key value = NA
    HKLM\SOFTWARE\ORACLE\HOME0 registry key value = AMERICAN_AMERICA.WE8MSWIN1252
    select * from nls_database_parameters
    returns:
    NLS_CHARACTERSET = WE8MSWIN1252
    NLS_LANGUAGE =     AMERICAN
    NLS_NCHAR_CHARACTERSET = AL16UTF16
    windows xp settings for regional & language options, advanced tab under language for non-unicode programs is set to Chinese(Taiwan).
    Using the strgen tool available for free from MS here (http://www.microsoft.com/globaldev/tools/strgen.mspx). I generate hundreds of CHT(Chinese Taiwan) characters and then insert them via sqlplus into a varchar2(100), then query the results getting what looks like the exact characters I put in.
    If I run:
    select dump(column_name), column_name from table_name;
    on a row containing 4 chinese characters the results are:
    Typ=1 Len=8: 165,250,184,234,187,219,179,225 [4 chinese characters go here - sorry they aren't pasting properly]
    Looks like multibyte to me, but I must be missing something??
    My main question is why DON'T I get question marks??? I.e. Since I'm using an single byte characterset shouldn't it be junk that is return instead of exactly, or at least what looks like exactly, the same characters be returned. I'm missing something -- please, someone clear things up for me. I will provide whatever info that is necessary.
    This is very critical to us in that we've been using a front-end application for some time with this configuration and have only recently tried globalizing/localizing our web based products. It seems that in order for apache to send the proper encoding to the web based client, that the nls_lang registry entry should be set to ZHT16BIG5, which will make the browser work, but this then breaks our front-end app.
    Thank you,
    Jason

    This is typical pass-through scenario (known as "garbage-in garbage-out").
    You have defined NLS_LANG to be the same as the database character set.
    Therefore, the database does no character set conversion as it thinks
    no conversion is needed. You see Chinese characters because the SQL*Plus
    font is set to the system default for Chinese locale. The operating system
    displays received codes as Chinese and not as Western European.
    For the data that you DUMPed, call LENGTH(). In a correct configuration,
    with the ZHT16MSWIN950 character set, the function would return 4.
    But it will return 8, because Oracle thinks the input is a string of WE8MSWIN1252
    single-bytes codes. Also, try Java to show the characters. You will
    not succeed, because Java converts to Unicode and this conversion from
    WE8MSWIN1252 will produce mess from the Chinese codes.
    In a proper configuration, you need NLS_LANG=.ZHT16MSWIN950 and
    the database character set (NLS_CHARACTERSET) either ZHT16MSWIN950,
    or AL32UTF8, if the database is to be really multilingual.
    -- Sergiusz

  • Storing Chinese Characters

    What are the NLS_CHARACTERSET and NLS_LENGTH_SEMANTICS settings required to store chinese characters?

    AL32UTF8 and AL16UTF16 support exactly the same Unicode standard in a given Oracle version. Both support supplementary characters: AL32UTF8 as single 4-byte codes, AL16UTF16 as surrogate pairs (two codes 2 bytes each). Therefore, AL32UTF8 support for supplementary characters is actually more transparent.
    Also, AL32UTF8 is only valid as the database character set (VARCHAR2, CHAR, LONG, CLOB), while AL16UTF16 is only valid as the national character set (NVACHAR2, NCHAR, NCLOB).
    UTF8 is the character set that should be avoided as it supports Unicode 3.0 only.
    -- Sergiusz

  • How to use a select statement with chinese characters?

    I am currently developing a java servlet<using tomcat 4.x> which allows me to use select statement to retrieve results from the Microsoft SQL Server 2000 database. I am using a simple form to get the parameter for querying. The main problem i'm facing is that there are chinese information in the SQL database, but i can't retrieve it through the sql statement with the chinese characters input<thru the form with the help of NJ STAR>in the WHERE condition. When i execute the statement, it returns me no results even though the rows are present in the database.
    Does anyone have the solution to using chinese words in the WHERE clause of the select statement to retrieve results with columns which contains chinese characters? Please help me. Thanks everyone. :)
    PS: when i cut and paste those characters in the sql database and paste onto java.. it is ??? in questionmarks.. but when i paste them into excel 2000.. its shown as chinese chars again..
    please heelppp~~

    Greetings,
    PS: when i cut and paste those characters in thesql
    database and paste onto java.. it is ??? in
    questionmarks.. but when i paste them into excelThis is why the SELECT is not returning any results.
    You need to set the character encoding set on your
    statement and parameters for the characters to be
    properly translated. Refer to the charsetName
    parameter in the String class constructor in your API
    docs and also to
    $JDK_DOCS/guide/intl/encoding.doc.html in your JDK
    documentation.
    2000.. its shown as chinese chars again..Because Office programs are performing the same kind
    of character translation with the appropriate MS APIs.
    please heelppp~~Regards,
    Tony "Vee Schade" Cookis it possible for you to show me some coding examples? i don't really understand what is to be done in order to set the char set and what does it really do.. tried reading up but still dun understand.. :(
    pardon my shallow knowledge of java..
    ok..
    The thing is when i used an insert statement with chinese characters of GBK format hardcoded into the java servlet and then i use the insert statement to insert the chars into the database, it cannot be seen as a chinese word when i off the NJStar. and then it can be searched out with my current form of servlet.. below is my coding of the servlet..
    note: i've set my html file to charset = GBK
    //prototype of Search engine...
    //workable for GBK input and output...
    import java.io.*;
    import java.io.OutputStream;
    import java.io.IOException;
    import javax.servlet.http.*;
    import javax.servlet.ServletException;
    import java.util.*;
    import java.sql.*;
    import java.nio.charset.Charset;
    public class SearchBeta extends HttpServlet {
         private Vector musicDetails = new Vector();
         private String query = "";
         public void service (HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException, UnsupportedEncodingException {
              query = req.getParameter ("T1");
              System.out.println("before:"+query);
              String type = req.getParameter ("D1");//type
              query = req.getParameter ("T1");
              //query = "������";
              System.out.println("after:"+query);
              getResults(type,query);
              System.out.println("locale = :"+req.getLocale());
              res.setContentType ("text/html;charset=GBK");
              PrintWriter out = res.getWriter();
              out.println("<html>");
              out.println("<head>");
              out.println("<body bgcolor = \"black\">");
              out.println("<font face = \"comic sans ms\" color=\"Cornsilk\">");
              if (query.length()==0)
                   out.println ("Please key in your search query.");
              else if (musicDetails.size()==0)
                   out.println ("Sorry, no results matching your search can be found.");
              else {
                   out.println("<center>");
                   out.println("<table cellspacing = \"50\">");
                   int i = 0;
                   //Display the details of the music
                   while (i<musicDetails.size()) {
                        Results details = (Results)musicDetails.get(i);
                        String dbArtist = "";
                        String dbAlbum = "";
                        String dbTitle = "";
                        String dbCompany = "";
                        dbAlbum = details.getAlbum();
                        dbTitle = details.getTitle();
                        dbCompany = details.getCompany();
                        dbArtist = details.getArtist();
                        try{
                             dbAlbum = new String(dbAlbum.getBytes("ISO-8859-1"),"GBK");
                             dbTitle = new String(dbTitle.getBytes("ISO-8859-1"),"GBK");
                             dbCompany = new String(dbCompany.getBytes("ISO-8859-1"),"GBK");
                             dbArtist = new String(dbArtist.getBytes("ISO-8859-1"),"GBK");//correct translation.
                        catch(UnsupportedEncodingException e){
                             System.out.print(e);
                             e.printStackTrace();
                        String dbImage_loc = details.getImage();
                        out.println("<tr>");
                             out.println("<td><table>");
                                  out.println("<img src=C:\\Program Files\\Apache Group\\Tomcat 4.1\\webapps\\examples\\ThumbNails\\"+dbImage_loc+">");
                             out.println("<tr>");
                                  out.println("<th><font color=\"violet\"> Artist: </font></th>");
                                  out.println("<td><font color=\"Cornsilk\">"+dbArtist+"</font></td>");
                             out.println("</tr>");
                             out.println("<tr>");
                                  out.println("<th><font color=\"violet\"> Title: </font></th>");
                                  out.println("<td><font color=\"Cornsilk\">"+dbTitle+"</font></td>");
                             out.println("</tr>");
                             out.println("<tr>");
                                  out.println("<th><font color=\"violet\"> Company: </font></th>");
                                  out.println("<td><font color=\"Cornsilk\">"+dbCompany+"</font></td>");
                             out.println("</tr>");
                             System.out.println("album: "+ dbAlbum);
                             out.println("<tr>");
                                  out.println("<th><font color=\"violet\"> Album: </font></th>");
                                  out.println("<td><font color=\"Cornsilk\">"+dbAlbum+"</font></td>");
                             out.println("</tr>");
                             System.out.println("company: "+ dbCompany);
                             out.println("</table></td>");
                        out.println("</tr>");
                        i++;
                   out.println("</table>");
                   out.println("</center>");
              out.println("</font>");
              out.println("</body>");
              out.println("</head>");
              out.println("</html>");
              out.close();
              //to remove all the elements from the Vector
              musicDetails.removeAllElements();
         //get Searched Music Details and store in Results object which is stored in musicDetails vector
         public void getResults (String type, String searchQuery) {
              try {
                   Class.forName ("com.microsoft.jdbc.sqlserver.SQLServerDriver");
                   Connection con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=music","sa","kokkeng");
                   Statement stmt = con.createStatement();
                   String query = "SELECT * FROM MusicDetails WHERE "+type+" = '"+searchQuery+"'";
                   ResultSet rs = stmt.executeQuery(query);
                   while (rs.next()) {
                        String artist = rs.getString("Artist");
                        String title = rs.getString("Song");
                        String company = rs.getString("Company");
                        String album = rs.getString("Album");
                        String image_loc = rs.getString("Image");
                        Results details = new Results (artist,title,company,album,image_loc);
                        musicDetails.add(details);
                   stmt.close();
                   con.close();
              catch (Exception e) {
                   System.out.println(e.getMessage());
                   e.printStackTrace();
    with the above servlet i created, i can search out the data in the database which i've inserted through the insert statement. I still can't search for things i've keyed into the database directly using NJStar..
    thank you so much for helping.. really hope any one else who knows the answer to this will reply too... thank you all so much...
    -KK

  • Cannot Input and Display Chinese Characters by using ODBC Applications

    Dear all,
    I am trying to input the Simplified Chinese Characters in the Oracle Database Ver 9.2 running on a UNIX AIX server. The client application we are using is th MS Access 2003 running on a MS Windows XP English version SP 2 without multi-language pack. MS Office 2003 is also an English version.
    Database setting is:
    NLS_CHARACTERSET=US7ASCII
    NLS_NCHAR_CHARACTERSET=AL16UTF16
    The Oracle Client used is also ver 9.2 with the ODBC driver ver 9.2. I have tried the following NLS_LANG settings by chaging the registry without any NLS_LANG environment settings:
    AMERICAN_AMERICA.ZHT16MSWIN950
    AMERICAN_AMERICA.ZHS16GBK
    AMERICAN_AMERICA.ZHT16HKSCS
    AMERICAN_AMERICA.AL32UTF8
    I have tied to load some Chinese Characters in by sqlload and by using the NLS_LANG AMERICAN_AMERICA.ZHT16MSWIN950, AMERICAN_AMERICA.ZHS16GBK and AMERICAN_AMERICA.ZHT16HKSCS, they can be display perfectly in SQLPLUS. But when using the same NLS_LANGs and display in the ACCESS, only ???? are displayed.
    When I tried to insert Chinese in ACCESS, the character changed to ???? again. No matter what Chinese characters I inserted by MS ACCESS, the ???? code can be dump with the binary code "03, 0f".
    Are there any methods or settings I need to change to make ACCESS an application for inserting and displaying Chinese characters from the Oracle database?
    I have tried to set the Non-Unicode setting in the Windows Locale setting:
    Chinese (Taiwan) (With AMERICAN_AMERICA.ZHT16MSWIN950),
    Chinese (Hong Kong S.A.R) (with AMERICAN_AMERICA.ZHT16HKSCS) and
    Chinese (PRC) (with AMERICAN_AMERICA.ZHS16GBK)
    when inserting the Chinese Characters by Access. But they all failed with ???? inserted in the DB.
    Please kindly advise what should be done.
    Thanks.

    Are you trying to store the character data in char/varchar2 columns?
    If that's the case then you have a problem, since a US7ASCII character set can only handle, well, ascii data.
    If you are trying to store the data in columns of nchar datatypes, then there might be a problem with literals because literals are converted to database character set first, before conversion to national (nchar) character set. Such data loss can also happen depending on how binds or oci calls are performed.
    You could use the dump() function to verify what's actually stored in a database column, without a db - client conversion happening that may distort the facts.
    Example:
    SQL> select col, dump(col, 1016) from table where some_condition;

  • Powerbuilder an Chinese Characters

    I am using powerbuilder 12.5.2 Build 5006 with a MSSQL Server 2008 SP2 database.Version 10.0.5500.0
    The connection to the database uses ODBC and the connect string is
    DBParm=ConnectString='DSN=StarKISHK_Dev;UID=;PWD=;APP=%app%;WSID=%wsid%',ConnectOption='SQL_INTEGRATED_SECURITY,SQL_IS_ON',PBCatalogOwner='dbo',StripParmNames='Yes',DisableBind=1
    I can retreive and display Chinese characters, however if I enter Chinese characters in a datawindow, and perform an update, only question marks are saved to the database. The update uses a stored procedure.
    The datawindow column is called stock_message and is defined as a string, the parameters for the stored procedure are
    [usp_update_day_stock_message]
        @shop_no            SMALLINT,
        @trading_date        DATETIME,
        @stock_message        NVARCHAR(MAX)
    and the table is defined as
    [dbo].[trading_conditions](
        [shop_no] [smallint] NOT NULL,
        [trading_date] [datetime] NOT NULL,
        [stock_message] [nvarchar](max) NULL
    What is preventing the Chinese characters being saved properly?
    (I saw an old post saying set disablebind=0 in the connection string but that didn't work)

    Actually, the better place to ask a technical question like this is over in the PowerBuilder Developer Center.  This area is more for people who are interesting in finding out more about the product, not the folks who are already using it.  As a result, most of the developers are over in the developer center, not here.

  • SQL*Plus and chinese characters

    Hi all,
    I have following scenario:
    1. Database 10.1.0.5 with following NLS-Parameter:
    SQL> select * from NLS_DATABASE_PARAMETERS;
    NLS_LANGUAGE AMERICAN
    NLS_NCHAR_CHARACTERSET AL16UTF16
    NLS_TERRITORY AMERICA
    NLS_CURRENCY $
    NLS_ISO_CURRENCY AMERICA
    NLS_NUMERIC_CHARACTERS .,
    NLS_CHARACTERSET WE8MSWIN1252
    NLS_CALENDAR GREGORIAN
    NLS_DATE_FORMAT DD-MON-RR
    NLS_DATE_LANGUAGE AMERICAN
    NLS_SORT BINARY
    NLS_TIME_FORMAT HH.MI.SSXFF AM
    NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
    NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
    NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
    NLS_DUAL_CURRENCY $
    NLS_COMP BINARY
    NLS_LENGTH_SEMANTICS BYTE
    NLS_NCHAR_CONV_EXCP FALSE
    NLS_RDBMS_VERSION 10.1.0.5.0
    SQL> select * from NLS_SESSION_PARAMETERS;
    NLS_LANGUAGE AMERICAN
    NLS_TERRITORY GERMANY
    NLS_CURRENCY €
    NLS_ISO_CURRENCY GERMANY
    NLS_NUMERIC_CHARACTERS ,.
    NLS_CALENDAR GREGORIAN
    NLS_DATE_FORMAT DD.MM.RR
    NLS_DATE_LANGUAGE AMERICAN
    NLS_SORT BINARY
    NLS_TIME_FORMAT HH24:MI:SSXFF
    NLS_TIMESTAMP_FORMAT DD.MM.RR HH24:MI:SSXFF
    NLS_TIME_TZ_FORMAT HH24:MI:SSXFF TZR
    NLS_TIMESTAMP_TZ_FORMAT DD.MM.RR HH24:MI:SSXFF TZR
    NLS_DUAL_CURRENCY €
    NLS_COMP BINARY
    NLS_LENGTH_SEMANTICS BYTE
    NLS_NCHAR_CONV_EXCP FALSE
    SQL> select * from V$NLS_PARAMETERS;
    NLS_LANGUAGE AMERICAN
    NLS_TERRITORY GERMANY
    NLS_CURRENCY €
    NLS_ISO_CURRENCY GERMANY
    NLS_NUMERIC_CHARACTERS ,.
    NLS_CALENDAR GREGORIAN
    NLS_DATE_FORMAT DD.MM.RR
    NLS_DATE_LANGUAGE AMERICAN
    NLS_CHARACTERSET WE8MSWIN1252
    NLS_SORT BINARY
    NLS_TIME_FORMAT HH24:MI:SSXFF
    NLS_TIMESTAMP_FORMAT DD.MM.RR HH24:MI:SSXFF
    NLS_TIME_TZ_FORMAT HH24:MI:SSXFF TZR
    NLS_TIMESTAMP_TZ_FORMAT DD.MM.RR HH24:MI:SSXFF TZR
    NLS_DUAL_CURRENCY €
    NLS_NCHAR_CHARACTERSET AL16UTF16
    NLS_COMP BINARY
    NLS_LENGTH_SEMANTICS BYTE
    NLS_NCHAR_CONV_EXCP FALSE
    2. Windows Language is german
    I should be possible to insert the chinese characters into the table from the SQL*Plus (sqlplusw.exe) and SQL*Plus should be able to show the chinese characters from that table.
    Is there any Step-By-Step Tutorial for the changes, that I should provide?
    Can anybody help me?
    Thanks

    I have a table CHINESE with one column STRING
    NVARCHAR2(250). There I will store the chinese
    character and display the content in SQL*Plus.
    Into the table I will insert with SQL*Plus with
    INSERT Statement.
    To store the character you could use e.g.
    insert unistr(<unicode value expression>) into table But Sql*Plus does not support Unicode display. Use SQL Developer instead for displaying your table data.
    You could also use select dump(column,1016) from table to verify that character data is correctly converted and stored.
    Windows Codepage is 1252.
    What do you mean under "what is your corresponding
    NLS_LANG client char set setting" ?With acp 1252, your NLS_LANG should contain .WE8MSWIN1252 - this tells Oracle your acp setting.
    Note however that windows-1252 does not define any Chinese characters.
    http://www.microsoft.com/globaldev/reference/sbcs/1252.mspx
    http://www.oracle.com/technology/tech/globalization/htdocs/nls_lang%20faq.htm
    You can read more about Unicode string literals in Oracle in chapter 7 Programming with Unicode, Globalization Support guide in 10.2. Also you probably should read about NCHAR literal replacement (available only in 10.2 and above).
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14225/toc.htm
    Message was edited by:
    orafad

  • Report Generation Toolkit using Chinese Characters

    I am trying to use the Report Generation Toolkit for Microsoft Office under LabVIEW 8.0.  I would like to use Chinese characters for the headings of the columns using a 2D array of the headings and the Excel Easy Table.  When I generate the report, the text of the headings appears to be jumbled and not encoding correctly.
    For example:
    仪器编号 becomes êNhV÷S
    采前初重(g) becomes Ç‘MRRÍ‘ÿg
    Any insights here? Thanks

    Hi,
    what you describe reminded me of a bug fix in the Report Generation Toolkit 2012 :
    339092
    Using the "Append Table to Report" VI to add strings of Cyrillic font to a table in an MS Word report results in gibberish being added to the report.
    http://digital.ni.com/public.nsf/allkb/09D6DE5170B3C0BD86257A2B004CFD20
    I know that Cyrillic and Chinese characters are different but they are often confronted to the same problems...
    Aurelie

  • Not all chinese characters display correctly with non-embedded text

    Hi all,
      I've updated to the last beta 2 of Flash Player 10.1 (10,1,51,66) and compiled this simple Flex application to illustrate the fact that not all chinese characters can be displayed correctly with non-embedded text (device font).
    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
                   xmlns:s="library://ns.adobe.com/flex/spark"
                   xmlns:mx="library://ns.adobe.com/flex/halo"
                   minWidth="1024" minHeight="768"
                   creationComplete="resourceManager.localeChain = ['zh_CN'];"
                   layout="{new VerticalLayout()}">           
        <fx:Script>
            <![CDATA[
                import spark.layouts.VerticalLayout;
            ]]>
        </fx:Script>
        <s:Label text="伜-伞伟传伡伢伣伤伥伦伧伨伩伪伫伬伭-伝">
        </s:Label>
        <mx:Label text="伜-伞伟传伡伢伣伤伥伦伧伨伩伪伫伬伭-伝"/>       
    </s:Application>
      Notice that characters from the Unicode range 0x4F1E .. 0x4А2D are not displayed within <s:Label> component that uses Flash Text Engine (FTE) by default to display the text, but at the same time those characters display just fine within older <mx:Label> component that relies on flash.text.TextField instance to render the text.

        OK, did not know that "Arial Unicode MS" font is only distributed with Microsoft Office, was looking into relying on this font in case if "simsun.ttc" font is not available at the user's system, by using the following:
    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
                   xmlns:s="library://ns.adobe.com/flex/spark"
                   xmlns:mx="library://ns.adobe.com/flex/mx"
                   minWidth="1024" minHeight="768"
                   creationComplete="resourceManager.localeChain = ['zh_CN']"
                   layout="{new VerticalLayout()}">               
        <fx:Style>
            @namespace s "library://ns.adobe.com/flex/spark";
            @namespace mx "library://ns.adobe.com/flex/halo";
            s|Label {
                fontFamily: "Arial Unicode MS, SimSun, Arial";            
        </fx:Style>   
        <fx:Script>
            <![CDATA[
                import spark.layouts.VerticalLayout;
            ]]>
        </fx:Script>
        <s:Label id="sparkLabel" text="伜-伞伟传伡伢伣伤伥伦伧伨伩伪伫伬伭-伝"/>   
    </s:Application>  
    Tough decision ahead, but accordingly to  the survey at codestyle.org (2000 participants from 2007 year and onwards), Arial Unicode MS is present at 62.53%% system surveyed.
    ps
       My current install of Windows XP already includes the install of Microsoft Office 2007 and I've also enabled/disabled the support of East Asian languages, thus the content of  my "fonts" folder differs now significantly from "clean" Windows XP install version.
    Nevertheless I found the page with comprehensive lists of standard fonts installed with different releases of Windows that looks viable here:  http://www.kayskreations.net/fonts/fonttb.html

Maybe you are looking for