Skip to content

Commit e100218

Browse files
Text files serving encoding fix
1 parent 2451af2 commit e100218

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "iknow-entity-browser",
3-
"version": "0.9.1",
3+
"version": "0.9.2",
44
"description": "Visualizer for iKnow entities",
55
"main": "gulpfile.babel.js",
66
"scripts": {

src/cls/EntityBrowser/ServeXData.cls

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@ Parameter CompileTime = {"""" _ $zd($h, 11) _ ", "_ $zdt($NOW(0), 2,1) _ " GMT""
2222
/// Generated in GenerateFiles generator.
2323
Parameter Files As CONFIGVALUE;
2424

25+
/// Encoding to use to serve html/css/javascript files
26+
Parameter Encoding As %String = "utf-8";
27+
28+
/// List of mime types second parts (delimited by slash), which will Encoding be set for.
29+
Parameter UseEncodingFor = {$LB("html", "css", "javascript", "plain")};
30+
2531
/// A generator for Files parameter.
2632
ClassMethod FillFiles() As %Status [ CodeMode = objectgenerator ]
2733
{
@@ -61,15 +67,19 @@ ClassMethod Serve(file As %String) As %Status
6167
set xdata = ..GetXData(file)
6268
return:(xdata = "") ..Http404()
6369

70+
set useCharSet = (0'=$LISTFIND(..#UseEncodingFor, $PIECE(xdata.MimeType, "/", 2)))
6471
set cTime = $PARAMETER($ClassName(), "CompileTime")
6572
set %response.ContentType = xdata.MimeType
73+
set:useCharSet %response.CharSet = "utf-8"
6674
do %response.SetHeader("Last-Modified", cTime)
6775
if (%request.GetCgiEnv("HTTP_IF_MODIFIED_SINCE") = cTime) {
6876
set %response.Status = "304 Not Modified"
6977
return $$$OK
7078
}
7179

72-
write $System.Encryption.Base64Decode(xdata.Data.Read(xdata.Data.Size))
80+
set chunk = $System.Encryption.Base64Decode(xdata.Data.Read(xdata.Data.Size))
81+
write:useCharSet $zcvt(chunk, "I", "UTF8")
82+
write:'useCharSet chunk
7383

7484
return $$$OK
7585
}

0 commit comments

Comments
 (0)