यह हिन्दी संस्करण एक ड्राफ़्ट है, जिसकी किसी मूल भाषी द्वारा समीक्षा अभी बाकी है।अंग्रेज़ी में पढ़ें

HI
सभी पोस्ट

यह पोस्ट अंग्रेज़ी में लिखी गई है।

Emoji and invisible characters in a product CSV

A product file can look clean and still fail: a row is rejected, a price is "not a number", or two look-alike SKUs do not match. Emoji, symbols (™ ® € • …), curly quotes, long dashes and invisible characters can cause this.

Why it happens. Some imports and older systems accept a limited set of characters and may reject, replace or drop the rest. Most emoji take 4 bytes in UTF-8; some older databases store at most 3, so a title with one may be rejected or cut. A zero-width space (U+200B), zero-width joiner (U+200D) or soft hyphen (U+00AD) shows nothing on screen but is still part of the value. For edge spaces, letters like "é", or odd characters before the first column name, see "Hidden spaces in a product CSV: find and fix them", "Why accented letters look broken in your CSV" and "Missing column in a CSV import: check for a BOM".

Find them. On a copy, keeping the original untouched, search for each symbol your store may not accept. Open the copy in a plain text editor that shows invisible characters and check SKU, price and barcode cells first. In a spreadsheet program, compare a cell's length with a cleaned copy, for example with the formula in the second block below. A result above 0 means a zero-width space or soft hyphen. Adapt this example formula. (Not run.)

Fix them. On the copy, delete invisible characters from SKUs, prices and barcodes. Use plain text for symbols: straight quotes, a hyphen for a long dash, three dots for "…". Keep a brand symbol such as ™ only if your store accepts it; test one row first. Remove a joined emoji whole, not only its zero-width joiner. Save the copy as UTF-8 with the same separator and note each change.

Recheck. Repeat the searches and length check on the saved copy, confirm the row count matches the original, then import one test row first.

The free CSV check finds only some of these. In a local test with made-up files it reported a zero-width space or soft hyphen in a price as a price that is not a number, and one in a barcode as a wrong number of digits. It did not flag emoji or symbols in titles, a title holding only a zero-width space, or two SKUs differing only by one. It checks the first 20 data rows, in your browser.

Synthetic example (made up): [ZW] marks one zero-width space, [SHY] one soft hyphen. Rows 1 and 2 look like the same SKU but are not; row 3's price is not read as a number; rows 4 and 5 look alike but differ by a soft hyphen
sku,title,price
A-101,Blue Mug ☕,12.50
A-101[ZW],Red Cup,8.00
A-103,Plate,9.99[ZW]
A-10[SHY]7,Fork,2.00
A-107,Knife,2.50
Synthetic example (made up), an example formula (Not run.): the length of cell A2 minus its length without zero-width spaces (8203) and soft hyphens (173); adapt the cell and the function names to your spreadsheet program
Formula for cell A2:
=LEN(A2)-LEN(SUBSTITUTE(SUBSTITUTE(A2,UNICHAR(8203),""),UNICHAR(173),""))

Check your CSV on heloft.com (नए टैब में खुलता है)

आँकड़े कहाँ से आते हैं

  • HQ CEO chain draft, 27 September 2026, review GO; synthetic example only, no customer file; editor and formula steps not run, marked (Not run.)
  • Free CSV check behaviour (heloft.com/m01): values are trimmed with the standard trim, which removes normal and non-breaking spaces but not zero-width spaces, zero-width joiners or soft hyphens; local run with synthetic files, 27 September 2026
  • 3-byte / 4-byte statement: general UTF-8 fact (most emoji are outside the Basic Multilingual Plane and take 4 bytes; some, such as ☕ U+2615, take 3); "some older databases store at most 3 bytes per character" is kept hedged ("some", "may") and not tied to any named system