Uploaded image for project: 'Axis2-C'
  1. Axis2-C
  2. AXIS2C-1265

guththila does not support Chinese and the Japanese.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.5.0
    • 1.7.0
    • guththila
    • None
    • windows xp sp2 japan

    Description

      data:

      a.xml
      <?xml version='1.0' encoding='UTF-8'?>
      <ns:parameter xmlns:ns="urn:ns">
      <ns:unit xmlns:ns="urn:ns">
      <ns:name>name</ns:name>
      <ns:type>1</ns:type>
      <ns:displayname>門雷:名前</ns:displayname>
      <ns:value>2</ns:value>
      </ns:unit>
      </ns:parameter>
      ---------------------------------------------------------------------
      code:

      axiom_node_t *root_node = NULL;
      axiom_node_t *child = NULL;
      axiom_document_t *document = NULL;
      axiom_stax_builder_t *om_builder = NULL;
      axiom_xml_reader_t *xml_reader = NULL;

      f = fopen("a.xml","r");
      xml_reader = axiom_xml_reader_create_for_io(env, read_input_callback, close_input_callback, NULL, "UTF-8");
      om_builder = axiom_stax_builder_create(env, xml_reader);
      document = axiom_stax_builder_get_document(om_builder, env);
      root_node = axiom_document_get_root_element(document, env);
      axiom_document_build_all(document, env);
      child = axiom_node_get_first_child(root_node, env);

      --------------------------------------------------------------------------------------------
      result:

      The analysis result is under shows:

      <ns:parameter xmlns:ns="urn:ns">
      <ns:unit xmlns:ns="urn:ns">
      <ns:name>name</ns:name>
      <ns:type>1</ns:type>
      <ns:displayname></ns:displayname>
      </ns:unit>
      </ns:parameter>

      displayname and value lost

      ---------------------------------------------------------------------------------------------------------------
      debug:

      .\axis2c\guththila\src\guththila_xml_parser.c
      1532 c = m->buffer.buff[m->buffer.cur_buff][m->next++ -
      1533
      GUTHTHILA_BUFFER_PRE_DATA_SIZE
      1534 (m->buffer)];
      1535 return c >= 0 ? c : -1;

      c is int.
      m->buffer.buff[m->buffer.cur_buff][m->next++ - GUTHTHILA_BUFFER_PRE_DATA_SIZE (m->buffer)] is char.
      char scope is - 127~128.
      char[i] char [i+1] == 門
      char[i]  > 128
      char Convert int, c < 0

      om_builder-done = true.

      Attachments

        1. utf8-patch.txt
          88 kB
          David K. Taylor

        Issue Links

          Activity

            People

              shankar Selvaratnam Uthaiyashankar
              waxwork0220 songlei
              Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: