1diff --git a/third_party/lcms/src/cmscgats.c b/third_party/lcms/src/cmscgats.c
2index 7df5bbc4d..49cfbbe8c 100644
3--- a/third_party/lcms/src/cmscgats.c
4+++ b/third_party/lcms/src/cmscgats.c
5@@ -256,7 +256,7 @@ static PROPERTY PredefinedProperties[] = {
6                                                    // needed.
7
8         {"SAMPLE_BACKING",   WRITE_STRINGIFY},     // Identifies the backing material used behind the sample during
9-                                                   // measurement. Allowed values are ?black?, ?white?, or {"na".
10+                                                   // measurement. Allowed values are "black", "white", or {"na".
11
12         {"CHISQ_DOF",        WRITE_STRINGIFY},     // Degrees of freedom associated with the Chi squared statistic
13                                                    // below properties are new in recent specs:
14@@ -271,7 +271,7 @@ static PROPERTY PredefinedProperties[] = {
15                                                    // denote the use of filters such as none, D65, Red, Green or Blue.
16
17        {"POLARIZATION",      WRITE_STRINGIFY},     // Identifies the use of a physical polarization filter during measurement. Allowed
18-                                                   // values are {"yes?, ?white?, ?none? or ?na?.
19+                                                   // values are "yes", "white", "none" or "na".
20
21        {"WEIGHTING_FUNCTION", WRITE_PAIR},         // Indicates such functions as: the CIE standard observer functions used in the
22                                                    // calculation of various data parameters (2 degree and 10 degree), CIE standard
23diff --git a/third_party/lcms/src/cmstypes.c b/third_party/lcms/src/cmstypes.c
24index 6cb8d4be3..e95e6d910 100644
25--- a/third_party/lcms/src/cmstypes.c
26+++ b/third_party/lcms/src/cmstypes.c
27@@ -974,7 +974,7 @@ cmsBool  Type_Text_Description_Write(struct _cms_typehandler_struct* self, cmsIO
28     len = cmsMLUgetASCII(mlu, cmsNoLanguage, cmsNoCountry, NULL, 0);
29
30     // Specification ICC.1:2001-04 (v2.4.0): It has been found that textDescriptionType can contain misaligned data
31-    //(see clause 4.1 for the definition of ?aligned?). Because the Unicode language
32+    //(see clause 4.1 for the definition of "aligned"). Because the Unicode language
33     // code and Unicode count immediately follow the ASCII description, their
34     // alignment is not correct if the ASCII count is not a multiple of four. The
35     // ScriptCode code is misaligned when the ASCII count is odd. Profile reading and
36@@ -3091,10 +3091,10 @@ void Type_ColorantTable_Free(struct _cms_typehandler_struct* self, void* Ptr)
37 //The namedColor2Type is a count value and array of structures that provide color
38 //coordinates for 7-bit ASCII color names. For each named color, a PCS and optional
39 //device representation of the color are given. Both representations are 16-bit values.
40-//The device representation corresponds to the header?s ?color space of data? field.
41-//This representation should be consistent with the ?number of device components?
42+//The device representation corresponds to the header's "color space of data" field.
43+//This representation should be consistent with the "number of device components"
44 //field in the namedColor2Type. If this field is 0, device coordinates are not provided.
45-//The PCS representation corresponds to the header?s PCS field. The PCS representation
46+//The PCS representation corresponds to the header's PCS field. The PCS representation
47 //is always provided. Color names are fixed-length, 32-byte fields including null
48 //termination. In order to maintain maximum portability, it is strongly recommended
49 //that special characters of the 7-bit ASCII set not be used.
50@@ -3839,7 +3839,7 @@ void Type_Screening_Free(struct _cms_typehandler_struct* self, void* Ptr)
51 // ********************************************************************************
52 //
53 //This type represents a set of viewing condition parameters including:
54-//CIE ?absolute? illuminant white point tristimulus values and CIE ?absolute?
55+//CIE 'absolute' illuminant white point tristimulus values and CIE 'absolute'
56 //surround tristimulus values.
57
58 static
59@@ -3926,7 +3926,7 @@ void GenericMPEfree(struct _cms_typehandler_struct* self, void *Ptr)
60 }
61
62 // Each curve is stored in one or more curve segments, with break-points specified between curve segments.
63-// The first curve segment always starts at ?Infinity, and the last curve segment always ends at +Infinity. The
64+// The first curve segment always starts at -Infinity, and the last curve segment always ends at +Infinity. The
65 // first and last curve segments shall be specified in terms of a formula, whereas the other segments shall be
66 // specified either in terms of a formula, or by a sampled curve.
67
68diff --git a/third_party/lcms/src/cmsvirt.c b/third_party/lcms/src/cmsvirt.c
69index 19e0cafb1..935effc66 100644
70--- a/third_party/lcms/src/cmsvirt.c
71+++ b/third_party/lcms/src/cmsvirt.c
72@@ -612,18 +612,18 @@ cmsHPROFILE CMSEXPORT cmsCreateXYZProfile(void)
73
74 //sRGB Curves are defined by:
75 //
76-//If  R?sRGB,G?sRGB, B?sRGB < 0.04045
77+//If  R'sRGB,G'sRGB, B'sRGB < 0.04045
78 //
79-//    R =  R?sRGB / 12.92
80-//    G =  G?sRGB / 12.92
81-//    B =  B?sRGB / 12.92
82+//    R =  R'sRGB / 12.92
83+//    G =  G'sRGB / 12.92
84+//    B =  B'sRGB / 12.92
85 //
86 //
87-//else if  R?sRGB,G?sRGB, B?sRGB >= 0.04045
88+//else if  R'sRGB,G'sRGB, B'sRGB >= 0.04045
89 //
90-//    R = ((R?sRGB + 0.055) / 1.055)^2.4
91-//    G = ((G?sRGB + 0.055) / 1.055)^2.4
92-//    B = ((B?sRGB + 0.055) / 1.055)^2.4
93+//    R = ((R'sRGB + 0.055) / 1.055)^2.4
94+//    G = ((G'sRGB + 0.055) / 1.055)^2.4
95+//    B = ((B'sRGB + 0.055) / 1.055)^2.4
96
97 static
98 cmsToneCurve* Build_sRGBGamma(cmsContext ContextID)
99