Class | CharDet::SJISDistributionAnalysis
In: | lib/tmail/vendor/rchardet-1.3/lib/rchardet/chardistribution.rb
Parent: | CharDistributionAnalysis

### Methods

get_order new

### Public Class methods

new()

[Source]

    # File lib/tmail/vendor/rchardet-1.3/lib/rchardet/chardistribution.rb, line 190
        def initialize
          super()
          @_mCharToFreqOrder = JISCharToFreqOrder
          @_mTableSize = JIS_TABLE_SIZE
          @_mTypicalDistributionRatio = JIS_TYPICAL_DISTRIBUTION_RATIO
        end

### Public Instance methods

get_order(aStr)

[Source]

    # File lib/tmail/vendor/rchardet-1.3/lib/rchardet/chardistribution.rb, line 197
        def get_order(aStr)
          # for sjis encoding, we are interested
          #   first  byte range: 0x81 -- 0x9f , 0xe0 -- 0xfe
          #   second byte range: 0x40 -- 0x7e,  0x81 -- oxfe
          # no validation needed here. State machine has done that
          aStr = aStr[0..1].join if aStr.class == Array
          if (aStr[0..0] >= "\x81") and (aStr[0..0] <= "\x9F")
            order = 188 * (aStr[0] - 0x81)
          elsif (aStr[0..0] >= "\xE0") and (aStr[0..0] <= "\xEF")
            order = 188 * (aStr[0] - 0xE0 + 31)
          else
            return -1
          end
          order = order + aStr[1] - 0x40
          if aStr[1..1] > "\x7F"
            order =- 1
          end
          return order
        end

[Validate]