{
  "WorkItem": {
    "AffectedComponent": {
      "Name": "",
      "DisplayName": ""
    },
    "ClosedComment": "implemented in changeset 80525.  The first binary that will have this feature is v1.9.1.6.  ",
    "ClosedDate": "2011-07-11T04:30:02.183-07:00",
    "CommentCount": 0,
    "Custom": null,
    "Description": "Right now DotNetZip chooses a System.Text.Encoding to use, for encoding filenames and comments attached to ZipEntry items, based on a heuristic applied within the library, like this: \n \n - use IBM437 (the default zip encoding) if it works\n - if not, use an alternate encoding, which is specified in ProvisionalAlternateEncoding. \n \nDotNetZip applies this heuristic to each entry independently.  The result is that a zipfile can contain a number of entries, some of which are encoded with IBM437, and some of which are encoded with something else. \n \nThe request here is to allow a way to force a particular encoding: either UTF8, or a language-specific encoding, or something else.\n \nThis will require a change in property names at a minimum, in order to make sense. the \"Provisional\" in the ProvisionalAlternateEncoding property name which is present on ZipFile, ZipOutputStream, and ZipEntry, becomes no longer \"provisional\" when it is forced.  It is simply an AlternateEncoding, which is then applied in a different way:  The current heuristic-driven approach (using the alt encoding \"as necessary\") can remain , and also the current option of \"never\" using the alternate encoding.  This change will add a new option, which is \"always\" use the alt encoding. \n \nSo the way I propose to implement this is to remove ProvisionalAlternateEncoding, and replace it with AlternateEncoding and AlternateEncodingUsage - the former is a System.Text.Encoding, and the latter is an enum with 3 values: AsNecessary, Always, Never.",
    "LastUpdatedDate": "2013-05-16T05:31:36.017-07:00",
    "PlannedForRelease": "v1.9.1.8 DotNetZip - Latest Stable",
    "ReleaseVisibleToPublic": true,
    "Priority": {
      "Name": "Low",
      "Severity": 50,
      "Id": 1
    },
    "ProjectName": "DotNetZip",
    "ReportedDate": "2011-06-02T06:34:24.187-07:00",
    "Status": {
      "Name": "Closed",
      "Id": 4
    },
    "ReasonClosed": {
      "Name": "Unassigned"
    },
    "Summary": "Provide a way to Force UTF-8 (or whatever the alternate encoding is) in filenames",
    "Type": {
      "Name": "Issue",
      "Id": 3
    },
    "VoteCount": 1,
    "Id": 13634
  },
  "FileAttachments": [],
  "Comments": [
    {
      "Message": "I would rather say \"Force Provisional encoding in filenames\", for maximum flexibility.\r\n\r\nThanks a lot,\r\nMircea.",
      "PostedDate": "2011-06-03T02:33:31.337-07:00",
      "Id": -2147483648
    },
    {
      "Message": "",
      "PostedDate": "2011-06-13T12:00:10.97-07:00",
      "Id": -2147483648
    },
    {
      "Message": "",
      "PostedDate": "2011-06-13T21:48:47.05-07:00",
      "Id": -2147483648
    },
    {
      "Message": "OK, what I'm considering doing is, introducing a new property to provide the ability to indicate whether you'd like the encoding to apply \"as necessary\" , or \"always\".   The former, \"as necessary\" is the behavior the library uses currently.  The \"Always\" behavior is what you'd get if you always use a particular encoding in a particular zipfile.  It would employ the \"provisional alternate encoding\" as specified in property \"ProvisionalAlternateEncoding\".  The existence of the new property (always/asnecessary) will render the meaning of \"Provisional Alternate Encoding\" sort of moot - so I expect to change the name to \"AlternateEncoding\" (dropping the \"provisional\" modifier) and of course changing the documentation.  ",
      "PostedDate": "2011-06-23T11:50:36.313-07:00",
      "Id": -2147483648
    },
    {
      "Message": "",
      "PostedDate": "2011-06-24T06:33:27.85-07:00",
      "Id": -2147483648
    },
    {
      "Message": "",
      "PostedDate": "2011-06-24T06:37:07.087-07:00",
      "Id": -2147483648
    },
    {
      "Message": "",
      "PostedDate": "2011-07-11T04:30:02.183-07:00",
      "Id": -2147483648
    },
    {
      "Message": "",
      "PostedDate": "2013-02-21T18:43:13.493-08:00",
      "Id": -2147483648
    },
    {
      "Message": "",
      "PostedDate": "2013-05-16T05:31:36.017-07:00",
      "Id": -2147483648
    }
  ]
}