Beginner to I2C LCDs, need help.

Alright so I finally got both my LCD modules (8x2 LCD display 0802A blue backlight 1pcs | eBay) and I2C adapters (White/Blue 84 * 48 Nokia 5110 LCD Display Screen Module Module for Arduino DIY | eBay), so I want to start working on my project, however, after some tedious wiring, I get nothing. I have downloaded the new liquidcrystal library, and gotten the hellow world script uploaded to my mega, (and yes I have the I2C connections right, I tested on another) and I get nothing at all, it's absolutely dead, and I have no clue why. The pins are identical to the 16x2 lcds I ordered, so what gives?

I also just directly soldered an I2C adapter to a 16x2 display, however I can't get it to display text, it just does random crap without ever showing any words or characters.

I've decided to just try and get the 16x2 running for now, with this script it turns on, and the top row (with the led backlight to the right) just has the sections filled it, and doesn't print hello world.

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

#define BACKLIGHT_PIN 13

LiquidCrystal_I2C lcd(0x20);

void setup() {
  pinMode (BACKLIGHT_PIN, OUTPUT);
  digitalWrite (BACKLIGHT_PIN, LOW);
  lcd.begin(16,2);
}

void loop() {
  // put your main code here, to run repeatedly: 
  
}

I've gone back to the example because that's the only thing giving me anything on the lcd, with this setup I can get a flashing cursor, but I can never get it to print anything. I have noticed sometimes a letter will pop up after cycling power to the arduino, or the lcd and hitting reset but it's rare. What's causing this?

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>



#define BACKLIGHT_PIN     13

LiquidCrystal_I2C lcd(0x20);  // Set the LCD I2C address

//LiquidCrystal_I2C lcd(0x38, BACKLIGHT_PIN, POSITIVE);  // Set the LCD I2C address


// Creat a set of new characters
const uint8_t charBitmap[][8] = {
   { 0xc, 0x12, 0x12, 0xc, 0, 0, 0, 0 },
   { 0x6, 0x9, 0x9, 0x6, 0, 0, 0, 0 },
   { 0x0, 0x6, 0x9, 0x9, 0x6, 0, 0, 0x0 },
   { 0x0, 0xc, 0x12, 0x12, 0xc, 0, 0, 0x0 },
   { 0x0, 0x0, 0xc, 0x12, 0x12, 0xc, 0, 0x0 },
   { 0x0, 0x0, 0x6, 0x9, 0x9, 0x6, 0, 0x0 },
   { 0x0, 0x0, 0x0, 0x6, 0x9, 0x9, 0x6, 0x0 },
   { 0x0, 0x0, 0x0, 0xc, 0x12, 0x12, 0xc, 0x0 }
   
};

void setup()
{
   int charBitmapSize = (sizeof(charBitmap ) / sizeof (charBitmap[0]));

  // Switch on the backlight
  pinMode ( BACKLIGHT_PIN, OUTPUT );
  digitalWrite ( BACKLIGHT_PIN, HIGH );
  
  lcd.begin(16,2);               // initialize the lcd 

   for ( int i = 0; i < charBitmapSize; i++ )
   {
      lcd.createChar ( i, (uint8_t *)charBitmap[i] );
   }
   
   lcd.setCursor ( 0, 1 );

}

void loop()
{
   lcd.home ();
   lcd.setCursor ( 0, 1 );
}

Well I found an instructable and got the 16x2 working, text and all. Now I need help again figuring out why the darn 8x2 won't work.

#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>  // F Malpartida's NewLiquidCrystal library


#define I2C_ADDR    0x20  // Define I2C Address for controller
#define BACKLIGHT_PIN  7
#define En_pin  4
#define Rw_pin  5
#define Rs_pin  6
#define D4_pin  0
#define D5_pin  1
#define D6_pin  2
#define D7_pin  3

#define  LED_OFF  0
#define  LED_ON  1
LiquidCrystal_I2C  lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);

void setup() 
{
  lcd.begin (16,2);  // initialize the lcd
// Switch on the backlight
  lcd.setBacklightPin(BACKLIGHT_PIN,NEGATIVE);
  lcd.setBacklight(LED_ON);
  lcd.clear();
}

void loop()  
{

 
// Print on the LCD
  lcd.backlight();  
  lcd.setCursor(0,0); 
  lcd.print("  LCD Line One");
  lcd.setCursor(0,2);
  lcd.print("  LCD Line Two");
}