Hi, My English is not as good as you, so, I'm afraid of talk about question.
1. Can you tell me where you placed the first bit of code (encoding changeset0['desc'])? Well, I don't understand perfectly, but I can tell you about that array. When I debugging problems, this is an sample I found. changeset: [{'status': 'pending', 'rev': ['1'], 'client': 'DPI_MMP_BaeJaeHyun_S3350RELAE_Notebook', 'user': 'jh5774.bae', 'time': '1302418650', 'action': ['edit'], 'type': ['text'], 'depotFile': ['//MMP_PROD/EUR/2010/S3350/MAIN/REL_AE/3p_mmi_custt_dummy/src/custt/ ui/mmiapi/Gprsdef.h'], 'change': '902717', 'desc': 'test \xc0\xd4\xb4\xcf\xb4\xd9. test \xc0\xd4\xb4\xcf \xb4\xd9.\n'}] 2. And in your case, what does p4.charset show? Well, there's no value in that variable because we don't explicitly define. Our Perforce server, is window 2003 server, have default value = euc- kr or cp949 I hope my answer satisfying you. If you need more answer, don't hesitate. Thank you. On 4월11일, 오후4시11분, Christian Hammond <chip...@chipx86.com> wrote: > Hi, > > Sorry, I've been out the past week so I haven't been around to offer much > advice here. > > I'm glad you found a solution. I think we need a better way to factor this > all out, though. Otherwise you'll have to maintain a custom patch for every > upgrade. > > Can you tell me where you placed the first bit of code (encoding > changeset0['desc'])? > > We probably can reuse the repository's Encoding field and insert the lines > into perforce.py to respect it, in much the same way that you did. So > instead of unicode(something, 'cp949'), it'd be unicode(something, > repository.encoding). Right now, that field only appears to affect the > patches. > > And in your case, what does p4.charset show? > > Christian > > -- > Christian Hammond - chip...@chipx86.com > Review Board -http://www.reviewboard.org > VMware, Inc. -http://www.vmware.com > > 2011/4/10 jh5774....@samsung.com <jh5774....@samsung.com> > > > > > > > > > Well, well, > > > I finally solve this problems. > > > previous code, p4 description string problem, I change "euc-kr" to > > "cp949" for resolve some combination of 'Korean' > > > if not self.p4.charset: > > if changeset: > > changeset0['desc'] = unicode(changeset0['desc'], > > 'cp949').encode('utf-8') > > > And, When I select 'diff viewer', original file and new 's comment > > line broken problem also resolve('Korean comment'). > > > 1. Original file's broken.: > > > /usr/local/lib/python2.6/dist-packages/ReviewBoard-1.5.4-py2.6.egg/ > > reviewboard/scmtools/perforce.py > > > class PerforceTool(SCMTool): > > ... > > def get_file(self, path, revision=HEAD): > > ... > > p = subprocess.Popen(cmdline, stdout=subprocess.PIPE, > > stderr=subprocess.PIPE) > > (res, errdata) = p.communicate() > > if res: > > res = unicode(res, 'cp949').encode('utf-8') # This is > > that line. > > > 2. New file's broken: > > > /usr/local/lib/python2.6/dist-packages/ReviewBoard-1.5.4-py2.6.egg/ > > reviewboard/diffviewer/diffutils.py > > > ... > > def patch(diff, file, filename): > > ... > > > (fd, oldfile) = tempfile.mkstemp(dir=tempdir) > > f = os.fdopen(fd, "w+b") > > f.write(convert_line_endings(file)) > > > f.close()diff = unicode(diff,'cp949').encode('utf-8') # This line is > > that line. > > diff = convert_line_endings(diff) > > > Thank you everyone, > > Especially special thanks to : Chris Clark, and Minwoo Lee :) > > > On 4월10일, 오후6시05분, "jh5774....@samsung.com" <jh5774....@samsung.com> > > wrote: > > > Well, I find solution about my problems.... > > > > I'm adding codes to > > > > /usr/local/lib/python2.6/dist-packages/ReviewBoard-1.5.4-py2.6.egg/ > > > reviewboard/scmtools/perforce.py > > > > class PerforceTool(SCMTool): > > > ... > > > ... > > > def get_changeset(self, changesetid): > > > .... > > > if not self.p4.charset: # this if sentence needs more test in > > > future. > > > changeset[0]['desc'] = unicode(changeset[0]['desc'], > > > 'euc-kr').encode('utf-8') > > > > And, my repository's encode's value set 'empty'. > > > > And, I revert my sitecustomize.py to original. > > > > But, now, there's another problem is occured. > > > > If I add diff file, they also 'Korean' is broken. > > > > Well... I'm tired today. > > > > But, Thank you who help me. > > > > Have a nice day~!! > > > > On 4월9일, 오후5시01분, "jh5774....@samsung.com" <jh5774....@samsung.com> > > > wrote: > > > > > Well, > > > > > I appliy it to sitecustomize.py like below: > > > > > import sys > > > > sys.setdefaultencoding('euc-kr') > > > > > Then, my reviewboard's error message is changed. Only that. > > > > > before: > > > > JSONEncoderAdapter.encode: Arguments are: {'stat': 'ok', > > > > 'review_request': <ReviewRequest: [Bad Unicode data]>} > > > > > after: > > > > JSONEncoderAdapter.encode: Arguments are: {'stat': 'ok', > > > > 'review_request': <ReviewRequest: test ㅏㅁ너아ㅏㅓ test>} > > > > > actually, there's no korean, but weird sign in <ReviewRequest: ...> > > > > > And, I try to find response data when rb request to perforce. > > > > > in > > > > /usr/local//lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/ > > > > core/handlers/base.py > > > > > class BaseHandler(object): > > > > > def get_response(self, request): > > > > > # I think here is that function. > > > > > try: > > > > # Apply response middleware, regardless of the response > > > > for middleware_method in self._response_middleware: > > > > response = middleware_method(request, response) > > > > > The exception is occurred in this sentence. > > > > > But, I cannot trace more. > > > > > I need someone's help. > > > > > Thank you. > > > > > On 4월9일, 오전1시02분, Chris Clark <chris.cl...@ingres.com> wrote: > > > > > > jh5774....@samsung.com wrote: > > > > > > Well, I found a little clue about encoding. > > > > > > > /usr/lib/python2.6/json/__init__.py > > > > > > > in this codes, they said python only decode 'ASCII' and 'Unicode'. > > > > > > > So, python couldn't decode when encounter like a 'Korean word' > > > > > > > I find some solution about decoding. > > > > > > > For example, > > > > > > > a= '테스트' > > > > > > unicodeA =a.decode('euc-kr') > > > > > > utf8A = unicodeA.encode('utf-8') > > > > > > > or > > > > > > u = unicode(a, 'euc-kr').encode('utf-8') > > > > > > > Now, I must find the where reviewboard receive response message > > > > > > which their request to perforce using 'p4 describe' command. > > > > > > > Anyone who knows about that, please tell me. > > > > > > I'd be tempted to take a look at postreview and look at adding an > > > > > encoding flag. I haven't yet really looked at the transport > > mechanism, > > > > > there is a string implication that Unicode (specifically utf8) is > > sent > > > > > for the diffs, really bytes should be sent. This may be because json > > is > > > > > supposed to be utf8. Basically you would do the first part of your > > > > > example above in postreview. The other option (and this is a hack) is > > to > > > > > change your site packages to change the default system encoding for > > > > > Python from ASCII (default for windows) to euc-kr. This normally > > isn't > > > > > recommended BUT it would be a good diagnostic step to take to > > > > > prove/disprove the theory. Seehttp:// > > blog.ianbicking.org/illusive-setdefaultencoding.html > > > > > > Let us know how you get on. > > > > > > The extreme solution would be to use utf8 encoding for all source > > code, > > > > > which is fine for new projects but more tricky for older projects. > > > -- > > Want to help the Review Board project? Donate today at > >http://www.reviewboard.org/donate/ > > Happy user? Let us know athttp://www.reviewboard.org/users/ > > -~----------~----~----~----~------~----~------~--~--- > > To unsubscribe from this group, send email to > > reviewboard+unsubscr...@googlegroups.com > > For more options, visit this group at > >http://groups.google.com/group/reviewboard?hl=en -- Want to help the Review Board project? Donate today at http://www.reviewboard.org/donate/ Happy user? Let us know at http://www.reviewboard.org/users/ -~----------~----~----~----~------~----~------~--~--- To unsubscribe from this group, send email to reviewboard+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/reviewboard?hl=en