SI Unit Symbols in UTF-8 — Look-Alike Codepoints (.csv)
Eight measurements whose unit symbols use the codepoints that have Unicode look-alikes: MICRO SIGN against GREEK MU, OHM SIGN against GREEK OMEGA, ANGSTROM SIGN against A-with-ring. Each row also carries an ASCII fallback, so a normalisation bug shows up as a column mismatch rather than as an invisible change.
quantity,symbol,unit_symbol,unit_ascii,value,note
length,l,µm,um,5.2,MICRO SIGN U+00B5 versus GREEK MU U+03BC
resistance,R,Ω,ohm,47.5,OHM SIGN U+2126 versus GREEK OMEGA U+03A9
temperature,T,°C,degC,21.4,DEGREE SIGN U+00B0 then C
wavelength,λ,Å,angstrom,5891.0,ANGSTROM SIGN U+212B versus A WITH RING U+00C5
mass fraction,w,‰,per_mille,3.5,PER MILLE SIGN U+2030
uncertainty,u,±,+/-,0.2,PLUS-MINUS SIGN U+00B1
angle,θ,″,arcsec,12.0,"DOUBLE PRIME U+2033, not a quote character"
energy,E,J·mol⁻¹,J/mol,412.6,MIDDLE DOT and SUPERSCRIPT MINUS ONE
Specifications
- Rows
- 8
- Columns
- 6
- Encoding
- UTF-8 without BOM
- Line Endings
- LF
- Look Alike Pairs
- micro/mu, ohm/omega, angstrom/A-ring
- Ascii Fallback Column
- unit_ascii
- Normalisation Note
- NFKC folds several of these onto their Greek equivalents
Testing contract
Expected to pass- Scenario
- Read the file as UTF-8 and compare each unit_symbol against its exact expected codepoint before and after NFKC normalisation.
- Expected result
- µ reads as U+00B5 and Ω as U+2126 in the raw file, NFKC folds them to U+03BC and U+03A9, and every row still maps to its unit_ascii fallback afterwards.
What is a .csv file?
CSV (Comma-Separated Values) is a plain-text tabular format where rows are lines and fields are separated by commas, with quoting rules for values that contain delimiters, quotes, or newlines. It has no formal type system and depends on encoding and dialect conventions. It is the most portable format for tabular data exchange.
How to use this file
Use an example CSV to test parsers against quoting and embedded-delimiter edge cases, header handling, encoding detection, and import pipelines into databases or spreadsheets.
How to use this file for testing
“SI Unit Symbols in UTF-8 — Look-Alike Codepoints (.csv)” is a deterministic Novus Examples fixture for Scientific data, Encoding detection, Editor testing. Citation catalogs (BibTeX, RIS), chemistry structures (MDL Molfile, PDB), and gridded binary data (NetCDF, FITS) — for testing reference managers, molecule viewers, and scientific-data loaders.
Documented properties for this file: 8 rows · 6 columns · UTF-8 without BOM · LF. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
Scientific fixtures are small, valid, and fully synthetic — no real organism, patient, sample, or observation. Point your parser or loader at the file and check it reads the documented records, variables, or headers; binary formats ship a readable twin or metadata listing for comparison.
Code examples
import pandas as pd
df = pd.read_csv("si-unit-symbols-utf8.csv")
print(df.head())
print(df.dtypes)Related files
- csvCalibration Certificate — Error and Expanded Uncertainty (.csv)Five calibration points with the nominal value, the measured value, the signed error and the expanded uncertainty at k=2 with its confidence level stated. It is a synthetic illustration of the layout, not an accredited certificate, and nothing in it refers to a real instrument or laboratory.

- csvCensored Values and Detection Limits — Non-Numeric Results (.csv)Nine laboratory results where only four are plain numbers: two are below the detection limit, one is above range, two are missing in different spellings, and one is a legitimate small negative near the blank. Coercing the censored strings to numbers or to NaN both bias the summary, and the file distinguishes every case explicitly.

- tsvGravimetric Mass — TSV With Bracketed Units and Spaces in Headers (.tsv)Ten weighings as tab-separated values with headers that contain spaces, brackets and parentheses — 'u(mass) [g]' — the way balance software actually writes them. Column names like these break naive slug-based header handling long before the numbers become a problem.

- csvGUM-Style Uncertainty Budget — Sources Combined in Quadrature (.csv)A five-source uncertainty budget laid out the way the GUM prescribes: each source with its distribution, its divisor, its sensitivity coefficient and its contribution, then the combined and expanded values. Rectangular sources are divided by the square root of three, which is the step budget spreadsheets most often get wrong.

- csvInterlaboratory Comparison — z-Scores and En Numbers (.csv)Six fictional laboratories reporting the same measurand, scored both by z-score against a fixed sigma and by En number against each lab's own claimed uncertainty. The two statistics disagree about which labs are acceptable, which is the point: En rewards an honest uncertainty claim and z does not.

- jsonMeasurement JSON Schema — Units as Annotations (.json)A 2020-12 JSON Schema for the absorbance rows, carrying the physical unit and coverage factor as custom annotation keywords beside the standard type and range constraints. Annotations like these are ignored by validators and read by humans and tooling, which is precisely the contract being tested.

Generated by generation/scientific.py. Free for any use, no attribution required — license.