{ "id": "63712", "key": "TIMOB-3080", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "11244", "name": "Release 1.7.0", "archived": true, "released": true, "releaseDate": "2011-06-13" }, { "id": "11245", "name": "Sprint 2011-10", "archived": true, "released": true, "releaseDate": "2011-03-14" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2011-04-17T02:00:51.000+0000", "created": "2011-04-15T03:36:18.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [ "android", "defect", "release-1.6.1", "release-1.7.0", "reported-1.6.0", "rplist" ], "versions": [], "issuelinks": [], "assignee": { "name": "dthorp", "key": "dthorp", "displayName": "Don Thorp", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2011-04-17T02:00:51.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10202", "name": "Android", "description": "Android Platform" } ], "description": "{html}

Problem

\n

UTF-8 characters in JavaScript get corrupted by the Android\ndeployment build scripts in Titanium.

\n

Sample Project

\n
    \n
  1. Run the attached project in the emulator. It is based on the\ndefault, two tab project. The only difference is the labels have\nUTF-8 characters in them. Notice there is an Umlaut above the\n\"ö\" in \"Min förbrukning\".
  2. \n
  3. Create an apk of the project by using the \"Distribute\" >\n\"Android\" tab. If you run this APK on the device, you'll notice the\nUTF-8 characters are now corrupt.
  4. \n
  5. Without cleaning the build, run the project in the emulator.\nThe UTF-8 characters should be messed up here as well. On my\nmachine, the O with Umlaut was replaced with a check mark\n(√).
  6. \n
\n

Tested On

\n

Titanium SDK version: 1.6.0 (02/02/11 15:22 a02f7db...)
\nAndroid Emulator 2.2

\n

Associated Helpdesk Ticket

\n

http://developer.appcelerator.com/helpdesk/view/70681

{html}", "attachment": [ { "id": "18260", "filename": "utf8test.zip", "author": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "created": "2011-04-15T03:36:19.000+0000", "size": 4766874, "mimeType": "application/zip" } ], "flagged": false, "summary": "Android: Deploy Corrupts UTF-8 Characters", "creator": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "subtasks": [], "reporter": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "environment": null, "comment": { "comments": [ { "id": "130012", "author": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "body": "{html}

It would help if I attached the project...

{html}", "updateAuthor": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "created": "2011-04-15T03:36:20.000+0000", "updated": "2011-04-15T03:36:20.000+0000" }, { "id": "130013", "author": { "name": "richkilmer", "key": "richkilmer", "displayName": "Rich Kilmer", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

We have experienced this exact same issue today when we were\nabout to release an application just updated to 1.5.1 to QA and\n(soon) the Marketplace. This issue is critical to us. If someone\ncan point us to a place to look we will help out :)

{html}", "updateAuthor": { "name": "richkilmer", "key": "richkilmer", "displayName": "Rich Kilmer", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:36:20.000+0000", "updated": "2011-04-15T03:36:20.000+0000" }, { "id": "130014", "author": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "body": "{html}

2nd Associated Helpdesk Ticket

\n

http://developer.appcelerator.com/helpdesk/view/76272

{html}", "updateAuthor": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "created": "2011-04-15T03:36:21.000+0000", "updated": "2011-04-15T03:36:21.000+0000" }, { "id": "130015", "author": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "body": "{html}

This 3rd customer actually has a patch for the build scripts,\nprovided in the ticket:

\n

3rd Associated Helpdesk Ticket

\n

http://developer.appcelerator.com/helpdesk/view/76261

{html}", "updateAuthor": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "created": "2011-04-15T03:36:21.000+0000", "updated": "2011-04-15T03:36:21.000+0000" }, { "id": "130016", "author": { "name": "marco", "key": "marco", "displayName": "Marco", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

We have the same problem.
\nEncoding works on simulator an with \"Run on Device\".
\nAs soon as we compile an apk for distribution all UTF-8 Characters\nare corrupted.

\n

This starts from version 1.5.x on.
\nAs lon as we use 1.4.x it works.

\n

I noticed when I use the optional folder\n/platform/android/AndroidManifest.xml for a custom Manifest during\ncompilation an additional AndroidManifest.xml.gen is created under\n/build/android/. This file is not identical with the custom one.\nEspecially the header and the permissiona are different.

\n

This is a big problem for all countries using special characters\n(Germany, France, Spain etc.) as you cannot use Titanium anymore\nfor compiling apps for distribution.

\n

We would use 1.4.x but lot of code designed for 1.5-x\nwon´t work.

\n

Any workarounds in sight?

{html}", "updateAuthor": { "name": "marco", "key": "marco", "displayName": "Marco", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:36:21.000+0000", "updated": "2011-04-15T03:36:21.000+0000" }, { "id": "130017", "author": { "name": "christian", "key": "christian", "displayName": "Christian", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Also it seems that the problem exists on OS-X and Windows 7\nlikewise.

{html}", "updateAuthor": { "name": "christian", "key": "christian", "displayName": "Christian", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:36:21.000+0000", "updated": "2011-04-15T03:36:21.000+0000" }, { "id": "130018", "author": { "name": "mculpepper", "key": "mculpepper", "displayName": "Marshall Culpepper", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

(from [6d9b0f3e05ba71621da82c4ca98f4d5d1b250705])\nforce utf8 encoding in the js compiler, correctly deal with an\nabsolute prefix on an app:// URL for compiled JS, matching up with\nthe behavior
\nin interpreted mode [#3312 state:fixed-in-qa] [#3080\nstate:fixed-in-qa]
\n\nhttps://github.com/appcelerator/titanium_mobile/commit/6d9b0f3e05ba...

{html}", "updateAuthor": { "name": "mculpepper", "key": "mculpepper", "displayName": "Marshall Culpepper", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:36:22.000+0000", "updated": "2011-04-15T03:36:22.000+0000" }, { "id": "130019", "author": { "name": "mculpepper", "key": "mculpepper", "displayName": "Marshall Culpepper", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

(from [89c196d407d96d587e0c7883d6670e6523ff52c3])\nforce utf8 encoding in the js compiler, correctly deal with an\nabsolute prefix on an app:// URL for compiled JS, matching up with\nthe behavior
\nin interpreted mode [#3312 state:fixed-in-qa] [#3080\nstate:fixed-in-qa]
\n\nhttps://github.com/appcelerator/titanium_mobile/commit/89c196d407d9...

{html}", "updateAuthor": { "name": "mculpepper", "key": "mculpepper", "displayName": "Marshall Culpepper", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:36:22.000+0000", "updated": "2011-04-15T03:36:22.000+0000" }, { "id": "130020", "author": { "name": "nhuynh", "key": "nhuynh", "displayName": "Natalie Huynh", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Tested with Titanium SDK version: 1.6.1 (03/10/11 13:25\n2e8c438...) on
\nEmulator 2.1
\nSamsung Galaxy 2.2 (Tested with distribution package)

{html}", "updateAuthor": { "name": "nhuynh", "key": "nhuynh", "displayName": "Natalie Huynh", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:36:23.000+0000", "updated": "2011-04-15T03:36:23.000+0000" }, { "id": "130021", "author": { "name": "nhuynh", "key": "nhuynh", "displayName": "Natalie Huynh", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Tested with Titanium SDK version: 1.7.0 (03/11/11 12:08 86cfe14)\non
\nEmulator 2.1
\nSamsung Galaxy 2.2 (Tested with distribution package)

{html}", "updateAuthor": { "name": "nhuynh", "key": "nhuynh", "displayName": "Natalie Huynh", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:36:23.000+0000", "updated": "2011-04-15T03:36:23.000+0000" }, { "id": "130022", "author": { "name": "mculpepper", "key": "mculpepper", "displayName": "Marshall Culpepper", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

(from [727a5e1d7bc90e0c26ee528075f4648fe6fa14e7])\nforce utf8 encoding in the js compiler, correctly deal with an\nabsolute prefix on an app:// URL for compiled JS, matching up with\nthe behavior
\nin interpreted mode [#3312 state:fixed-in-qa] [#3080\nstate:fixed-in-qa]
\n\nhttps://github.com/appcelerator/titanium_mobile/commit/727a5e1d7bc9...

{html}", "updateAuthor": { "name": "mculpepper", "key": "mculpepper", "displayName": "Marshall Culpepper", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:36:24.000+0000", "updated": "2011-04-15T03:36:24.000+0000" }, { "id": "130023", "author": { "name": "dthorp", "key": "dthorp", "displayName": "Don Thorp", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Cherry-pick changed the state. Reversing that change.

{html}", "updateAuthor": { "name": "dthorp", "key": "dthorp", "displayName": "Don Thorp", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:36:24.000+0000", "updated": "2011-04-15T03:36:24.000+0000" } ], "maxResults": 12, "total": 12, "startAt": 0 } } }