# Unable to store data containing non-ASCII chars into elasticsearch

**URL:** https://discuss.elastic.co/t/unable-to-store-data-containing-non-ascii-chars-into-elasticsearch/77262
**Category:** Elasticsearch
**Created:** [March 3, 2017, 5:24am UTC](https://discuss.elastic.co/t/unable-to-store-data-containing-non-ascii-chars-into-elasticsearch/77262 "2017-03-03T05:24:38Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![shaikhmmi](https://avatars.discourse-cdn.com/v4/letter/s/5e9695/32.png) [@shaikhmmi](https://discuss.elastic.co/u/shaikhmmi)
#### Post date: [March 3, 2017, 5:24am UTC](https://discuss.elastic.co/t/unable-to-store-data-containing-non-ascii-chars-into-elasticsearch/77262/1 "2017-03-03T05:24:38Z")

</div>

We are facing issues while storing some content, which actually is an HTML document. It has some special non ASCII chars in it and we're unable to store it in elasticsearch.  
We're using elastic version 5.2.2  
One of the chars for which it fails is '×'

* * *

com.cdk.dmg.lib.esindexer.exception.ESIndexingFailedException: org.elasticsearch.client.ResponseException: POST http://test.com:9200content\_001/content/3b6f664c-b490-460c-bd61-dd6ca1986cdb\_WIP/: HTTP/1.1 400 Bad Request  
{"error":{"root\_cause":[{"type":"mapper\_parsing\_exception","reason":"failed to parse"}],"type":"mapper\_parsing\_exception","reason":"failed to parse","caused\_by":{"type":"i\_o\_exception","reason":"Invalid UTF-8 middle byte 0x3c\n at [Source: org.elasticsearch.common.bytes.BytesReference$MarkSupportingStreamInputWrapper@5f5f66a6; line: 46, column: 5660]"}},"status":400}

```
at com.cdk.dmg.lib.esindexer.Indexer.index(Indexer.java:52)
at com.cdk.dmg.services.sitecontent.es.integ.config.ESLibErrorTest.reproduceJsonError(ESLibErrorTest.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:119)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)

```

Caused by: org.elasticsearch.client.ResponseException: POST http://c04ddmnitr938.dslab.ad.adp.com:9200content\_001/content/3b6f664c-b490-460c-bd61-dd6ca1986cdb\_WIP/: HTTP/1.1 400 Bad Request  
{"error":{"root\_cause":[{"type":"mapper\_parsing\_exception","reason":"failed to parse"}],"type":"mapper\_parsing\_exception","reason":"failed to parse","caused\_by":{"type":"i\_o\_exception","reason":"Invalid UTF-8 middle byte 0x3c\n at [Source: org.elasticsearch.common.bytes.BytesReference$MarkSupportingStreamInputWrapper@5f5f66a6; line: 46, column: 5660]"}},"status":400}  
at org.elasticsearch.client.RestClient$1.completed(RestClient.java:311)  
at org.elasticsearch.client.RestClient$1.completed(RestClient.java:300)  
at org.apache.http.concurrent.BasicFuture.completed(BasicFuture.java:119)  
at org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.responseCompleted(DefaultClientExchangeHandlerImpl.java:177)  
at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.processResponse(HttpAsyncRequestExecutor.java:436)  
at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.inputReady(HttpAsyncRequestExecutor.java:326)  
at org.apache.http.impl.nio.DefaultNHttpClientConnection.consumeInput(DefaultNHttpClientConnection.java:265)  
at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:81)  
at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:39)  
at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:114)  
at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:162)  
at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:337)  
at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315)  
at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276)  
at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)  
at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:588)  
at java.lang.Thread.run(Thread.java:745)

---

<div class="post-metadata">

### Author: ![Babadofar](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/babadofar/32/44803_2.png) [@Babadofar](https://discuss.elastic.co/u/Babadofar)
#### Post date: [March 3, 2017, 6:09am UTC](https://discuss.elastic.co/t/unable-to-store-data-containing-non-ascii-chars-into-elasticsearch/77262/2 "2017-03-03T06:09:53Z")

</div>

You must convert your documents to utf-8 before feeding them to elasticsearch.

---

<div class="post-metadata">

### Author: ![shaikhmmi](https://avatars.discourse-cdn.com/v4/letter/s/5e9695/32.png) [@shaikhmmi](https://discuss.elastic.co/u/shaikhmmi)
#### Post date: [March 3, 2017, 9:59am UTC](https://discuss.elastic.co/t/unable-to-store-data-containing-non-ascii-chars-into-elasticsearch/77262/3 "2017-03-03T09:59:19Z")

</div>

Got it.  
We had to add some additional setting in our jackson object mapper which was using to create the json document.  
Below are the settings :  
objectMapper.getFactory().configure(Feature.ESCAPE\_NON\_ASCII, true);

Also, make sure to use the below method for creating json:  
objectMapper.writeValueAsString(document);

Thanks.

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [March 31, 2017, 9:59am UTC](https://discuss.elastic.co/t/unable-to-store-data-containing-non-ascii-chars-into-elasticsearch/77262/4 "2017-03-31T09:59:29Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
